四、Discuz论坛漏洞复现
浏览器访问到127.0.0.1/discuz3.4/utility/convert/index.php,进入X3.4系列升级/转换向导,如图4-1所示。
图4-1 X3.4系列升级/转换向导界面
任意选择一个目标版本进行升级,本设计将X3.4转换为X2.0版本进行测试,如图4-2所示。
图4-2 Discuz! X2.0转换界面
开启Burpsuite软件,并设置为“Intercept is on”,进行页面数据抓捕,如图4-3所示。
图4-3 Burpsuite截断界面
开启浏览器插件Foxyproxy(设置IP为127.0.0.1,端口号8080)为Burpsuite的代理插件,如图4-4所示。
图4-4 开启代理
单击下方保存服务器配置后,来到Burpsuite软件的Repeater重发器中,尝试修改Post数据,即手动介入改变Key的数据。
首先构造攻击Payload语句。
&newconfig[aaa%0a%0dphpinfo();//]=aaaa&submit=yes
其中,%0a代表换行,%0d代表回车,aaaa是伪造数据,从而尝试骗过过滤语句,将恶意代码Phpinfo()尝试注入。
修改Payload完成后将数据继续发送给Discuz论坛服务器,此时返回论坛界面,并重新访问升级/转换导向界面,显示了Phpinfo()的配置信息,如图4-5所示。
图4-5 注入成功界面
五、加固方案
通过之前的代码审计,可以知悉由于在升级/转换向导被使用时会调用Buildarray()函数,而函数内部可控参数Key在写入配置文件时并没有进行严格的数据过滤,因此手动添加一个防护Payload语句,针对于所有的非字母、数字以及下划线等特殊字符,利用Preg_replace函数直接进行删除操作,此时若想再次通过利用手动输入%0a和%0d的方式绕过服务器会直接被删除从而无法实现恶意代码的写入,具体Payload语句如下:
$key = preg_replace(“/[^\w]/”, “”, $key);
再次定位到Discuz3.4/utility/convert/include/global.func.php的升级/转换向导调用Buildarray()函数处,将过滤防护语句加入到每次进行数据检查处,如图5-1所示。
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数网络安全工程师,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年网络安全全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上网络安全知识点,真正体系化!
由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新
如果你觉得这些内容对你有帮助,可以添加VX:vip204888 (备注网络安全获取)
给大家的福利
零基础入门
对于从来没有接触过网络安全的同学,我们帮你准备了详细的学习成长路线图。可以说是最科学最系统的学习路线,大家跟着这个大的方向学习准没问题。
同时每个成长路线对应的板块都有配套的视频提供:
因篇幅有限,仅展示部分资料
一个人可以走的很快,但一群人才能走的更远。如果你从事以下工作或对以下感兴趣,欢迎戳这里加入程序员的圈子,让我们一起学习成长!
AI人工智能、Android移动开发、AIGC大模型、C C#、Go语言、Java、Linux运维、云计算、MySQL、PMP、网络安全、Python爬虫、UE5、UI设计、Unity3D、Web前端开发、产品经理、车载开发、大数据、鸿蒙、计算机网络、嵌入式物联网、软件测试、数据结构与算法、音视频开发、Flutter、IOS开发、PHP开发、.NET、安卓逆向、云计算
QL、PMP、网络安全、Python爬虫、UE5、UI设计、Unity3D、Web前端开发、产品经理、车载开发、大数据、鸿蒙、计算机网络、嵌入式物联网、软件测试、数据结构与算法、音视频开发、Flutter、IOS开发、PHP开发、.NET、安卓逆向、云计算**