发布网友
共1个回答
热心网友
本文探讨了代码审计过程中遇到的一个无回显SSRF漏洞的奇妙审计之旅。此次审计始于一个PHP源码的深度挖掘,通过关注函数curl_exec(),最终定位到了MACCMS 8系统的某个潜在安全风险。
在审计过程中,我们首先从函数curl_exec()出发,深入分析了maccms8\inc\common\function.php文件,发现利用此函数的潜在风险。经过细致的代码查找,我们发现调用getPage()函数的环节存在无过滤情况,这为漏洞的利用埋下了伏笔。
通过追踪调用getPage()的源头,我们找到了一个可能利用的入口点,即在inc\common\function.php的1746行。这里,传入的$url参数经过了截断拼接,缺乏有效过滤,为我们提供了利用的机会。继续追踪,我们发现savepic()函数可能被利用,它在maccms8\admin1212\admin_interface.php的第452行被调用,且传入参数d_pic可以通过be()函数接收。
be()函数的实现细节在此不再赘述,但它允许通过get或post方式接收参数d_pic。通过分析,我们发现可以利用这一特性构造利用流程,最终定位到实现漏洞利用的关键步骤。
在构造利用流程时,我们关注到在48、50行的判断条件,以及84、85行的空值判断,这指向了配置文件config/config.php。通过进一步分析,我们了解到可以通过get或post方式传入参数,实现对网站配置的修改,进而触发漏洞。
通过这一系列操作,我们成功构造了利用流程,尝试访问DNS日志,发现数据新增成功,证实了SQL注入的存在,但未直接与SSRF漏洞相关联。经过多次尝试,我们最终利用了文件写入功能,通过构造文件并测试写入成功,揭示了目录与文件名的特殊关联,进而发现了条件竞争的机会。
利用条件竞争,我们成功读取了文件内容,这一过程展示了深入思考和创新思维的重要性。在审计过程中,我们还发现了文件上传这一潜在利用点,通过构造PHP后缀的图片马,实现了文件解析和shell获取,进一步丰富了利用手段。
总的来说,这次审计之旅充满了挑战与惊喜,强调了代码审计过程中细致观察、深入分析和灵活思考的重要性。通过这次探索,我们不仅发现了SSRF漏洞的利用途径,还拓宽了利用思路,展现了审计技巧与漏洞利用的紧密结合。