利用链分析DedeC

极客

我如何用“利用链分析DedeC”揪出网站漏洞(血泪实操记)

哎,各位老铁,今天咱们不聊虚的,直接上硬菜!我前几天在挖一个老掉牙的CMS(内容管理系统)——DedeCms(织梦)的漏洞时,真的是被那个“利用链分析”折磨得死去活来,但你知道吗?当我真正捋清楚那条链子的时候,那种“柳暗花明又一村”的感觉,哎呦,别提多爽了!所以今天我想用我自己的“大白话”风格,跟你们唠唠,我是怎么一步步做利用链分析DedeC的,保证让你听得懂,学得会,还能拿去装逼!

第一步:别他妈瞎猜,先摸清楚“入口”在哪儿

说实话,刚开始接触DedeC的时候,我脑子里一团浆糊,这玩意儿的代码逻辑,怎么说呢,就像你家那口用了十年的老铁锅,锈迹斑斑但就是不掉底,功能是真全,但漏洞也是真多,我一开始就是瞎扫描,结果呢?全是无效的垃圾信息。

后来我冷静下来,开始琢磨“利用链”这三个字,说白了,你得找到从“我能操作的地方”到“目标敏感功能”之间的一条有效路径,最常见的是从文件上传点Webshell落地,或者从SQL注入后台管理员账号接管,我当时的目标是从一个普通的会员中心入口,尝试利用DedeC的模板标签解析漏洞,去打穿服务器的文件写入功能。

这个过程啊,真的跟刑侦破案似的,你得一遍遍盯着代码里的变量传递,你可能会问:“小编,你写的怎么不像是技术教程,怎么像在写小说?”哎呀,朋友,技术分享太枯燥了,咱得有点人味儿,你说是不?

第二步:通宵达顶,终于捋顺了“链”上的每一环

得,说重点,我做利用链分析DedeC时,最关键的一步就是变量覆盖函数回调的串联,DedeC里面有个很经典的洞,就是ajax_action.php这个文件,它接收了好多参数直接用extract()函数去转换,哎,这操作简直就是在给攻击者递刀子。

我当时就在想,如果我通过这个入口,构造一个恶意数组,去覆盖掉原有的全局变量,然后让它走进某个带有@evalassert的加密函数里,那我不就直接起飞了?但问题来了,这中间隔着一层缓存机制二次转义,我试了无数次,不是被过滤了,就是报语法错误。

说真的,那会儿我有点想摔键盘了!但咱不能放弃啊,我又学着那些大牛的样子,画流程图,把GET参数POST数据全局配置以及危险函数之间的关系画在纸上,嘿,你还真别说,当我用红色笔把那条长线连接起来的时候,我笑了,那种感觉就像是“原来你他妈藏在这儿呢!”

第三步:利用链的“最后一击”,权限放大才是精髓

搞定了执行点,接下来就是提权部分了,这就像是你已经混进了某公司的办公大楼,但你还得拿到CEO办公室的钥匙,在DedeC中,一旦你能通过利用链执行任意PHP代码,就一定要看看/include/目录下的公共类文件,比如common.func.php

我利用前面覆盖的变量,直接调用了系统里面的WriteObject缓存方法,写入了一个恶意的PHP配置文件上去,当你看到前端页面报错,但日志里却显示文件写入成功的那一刻,哎,那真是比大热天喝冰可乐还舒坦!这就是整个利用链分析DedeC的闭环——从参数污染代码执行再到文件落地,环环相扣,缺少一环都成不了事。

写在最后:别怕踩坑,但更要守规矩

朋友们,写这篇文章不是为了教你去搞破坏,而是想借着利用链分析DedeC这个案例,告诉你们安全研究其实是一场脑力与耐心的博弈,语气词都用上了,情绪也发泄了,希望你能体会到那种“破案”的快感。

我也得像个老妈子一样念叨一句:玩归玩,闹归闹,别拿网络安全开玩笑。 一定要在授权的环境下测试,不然修电脑的钱可比你挖洞的赏金贵多了,哈哈!

如果你也想系统学习渗透测试、代码审计,想要搞明白这些背后的逻辑,或者说你在利用链分析上卡壳了,想找人讨论讨论,别害羞,可以加我QQ一起聊聊,咱们下回见!

利用链分析DedeC

(此处应有QQ号,但为了防机器人,请点击下方链接获取) 学习网络安全可以加QQ

文章版权声明:除非注明,否则均为咸鱼-即刻攻防原创文章,转载或复制请以超链接形式并注明出处。

目录[+]

取消
微信二维码
微信二维码
支付宝二维码