吴旭华 发表于 2024-8-19 14:09:42

dedecms 两个常见毛病的复现

侵权声明
本文章中的所有内容(包括但不限于笔墨、图像和其他媒体)仅供教育和参考目标。如果在本文章中使用了任何受版权保护的材料,我们满怀敬意地承认该内容的版权归原作者所有。
如果您是版权持有人,并且认为您的作品被侵占,请通过以下方式与我们接洽: 。我们将在确认后的合理时间内采取得当步伐,包括删除相关内容。
感谢您的理解与支持

简介


版本

5.7

毛病位置


文件上传

file_manage_control.php
xss

article_add.php

分析


文件上传

找到文件中的文件上传位置。
https://img2024.cnblogs.com/blog/3473131/202408/3473131-20240819151403455-1404866351.png
红框前都是对参数的初始化,找到文件临时存放位置,将临时文件生存到本地。之后删除临时文件。
红框内
$file_base = strtolower(pathinfo($file, PATHINFO_BASENAME));获取文件名
$file_ext = strtolower(pathinfo($file, PATHINFO_EXTENSION));获取文件后缀
if (is_file($file) && $file_ext == "php")判断是否为文件和后缀是否为php如果此时一个条件不满足就好跳出后面的内容判断。如果我们上传一个php3为后缀的文件就可以成功(照旧有其他访问绕过或使php文件可以执行的办法)。然后通过下面函数改名即可利用。
https://img2024.cnblogs.com/blog/3473131/202408/3473131-20240819151408950-791550591.png
跟进RenameFile函数发现,没有举行过滤新文件名,只判断新旧文件名是否相等和文件是否可写。
https://img2024.cnblogs.com/blog/3473131/202408/3473131-20240819151414336-770007361.png

XSS

通过poc找到文件位置
https://img2024.cnblogs.com/blog/3473131/202408/3473131-20240819151827388-1640468718.png
跟进makart()函数,该函数是准备创建静态html文件,
https://img2024.cnblogs.com/blog/3473131/202408/3473131-20240819151838486-402895136.png
继续跟进makehtml()函数
https://img2024.cnblogs.com/blog/3473131/202408/3473131-20240819151833121-613517952.png
该函数前半部门有面两个重要的函数。
$this->LoadTemplet();获取文章的模板
$this->ParAddTable();处置惩罚文章需要保函的额外功能。比方投票。更进paraddtable()函数
https://img2024.cnblogs.com/blog/3473131/202408/3473131-20240819151812522-508881746.png
但是此时投票功能还没有实装到文章模板中。继续看到makehtml()函数后半部门
https://img2024.cnblogs.com/blog/3473131/202408/3473131-20240819151802496-310922360.png
直接看到最后红框中的两个函数。
$this->ParseDMFields($i,1);判断哪些模块是需要加载到文章模板中的,并对其举行标志和计算出需要加载模块的数量。方便后续将需要的模块加载到文章中。
$this->dtp->SaveTo($TRUEfilename);将模块加载到文章中。跟进saveto()函数
https://img2024.cnblogs.com/blog/3473131/202408/3473131-20240819151752081-2085810776.png
可以看到文件写入的功能函数了,继续跟进getresult()函数
https://img2024.cnblogs.com/blog/3473131/202408/3473131-20240819151747137-1392516079.png
我可以肯定的是在26号模板中就存在投票功能的模块并且写入了resultString参数,你可以自己去看看。

复现


文件上传

1、找到文件上传位置
https://img2024.cnblogs.com/blog/3473131/202408/3473131-20240819151732412-1032254042.png
)
2、上传一个带有一句话或其他的文件,但是文件需要时php3或是其他为后缀的
https://img2024.cnblogs.com/blog/3473131/202408/3473131-20240819151722901-786381833.png
3、修改文件名为1.php
https://img2024.cnblogs.com/blog/3473131/202408/3473131-20240819151715968-1883970742.png
4、访问利用
https://img2024.cnblogs.com/blog/3473131/202408/3473131-20240819151711073-1725286030.png

xss

1、找到文章发布位置,准备新添文章
https://img2024.cnblogs.com/blog/3473131/202408/3473131-20240819151706528-128227700.png
2、添加文件名和主栏目后,新增一个投票
https://img2024.cnblogs.com/blog/3473131/202408/3473131-20240819151701764-1233252349.png
3、在投票名称位置加上一个测试js代码,然后生存文件。
https://img2024.cnblogs.com/blog/3473131/202408/3473131-20240819151657046-1719195433.png
4、访问文件
https://img2024.cnblogs.com/blog/3473131/202408/3473131-20240819151652294-497016968.png

总结

还得练,只找到了一小部门。该系统还有很多其他毛病。

参考

CVE上该系统报出的一系列毛病
免责声明
本博客所提供的技术知识和信息仅旨在教育和分享网络安全最佳实践,促进网络安全意识的提升。作者严禁将这些技术和信息用于任何非法或不道德的目标。
使用本博客内容而导致的任何违法行为或后果,作者不承担当何法律责任。所有读者在使用本博客的信息时,应自行承担风险,并确保遵守当地法律法规。
我们鼓励所有读者合法地使用所提供的信息和技术,致力于维护安全和负责任的网络环境。
感谢您的理解与支持。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: dedecms 两个常见毛病的复现