PHP|网络安全:小记一次代码审计

PHP|网络安全:小记一次代码审计

文章图片

PHP|网络安全:小记一次代码审计

文章图片

PHP|网络安全:小记一次代码审计

文章图片

PHP|网络安全:小记一次代码审计

文章图片

PHP|网络安全:小记一次代码审计

文章图片

PHP|网络安全:小记一次代码审计

文章图片

PHP|网络安全:小记一次代码审计

文章图片

PHP|网络安全:小记一次代码审计

文章图片

PHP|网络安全:小记一次代码审计

文章图片

PHP|网络安全:小记一次代码审计

文章图片

PHP|网络安全:小记一次代码审计

文章图片

PHP|网络安全:小记一次代码审计

文章图片


前言:事情是这样的 , 由于我 CNVD 还差一积分就可以兑换京东E卡了 , 所以找了这个 CMS 看看能不能挖到漏洞 , 运气还是不错的挖到了两个 , 分别是 SSRF 与文件覆盖 GETSHELL , 这才有这篇文章 。 该 CMS 版本是 4.2 。 以下漏洞均被 CNVD 收录 。
环境说明:
PHP版本用 7.0.9 就好了 。 SSRF:
根据功能点定向审计 , 在后台的工具栏有一个采集功能 , 根据经验这种功能一般存在 SSRF 。


【一>所有资源关注我 , 私信回复“资料”获取<一】

1、网络安全学习路线

2、电子书籍(白帽子)

3、安全大厂内部视频

4、100份src文档
【PHP|网络安全:小记一次代码审计】
5、常见安全面试题

6、ctf大赛经典题目解析

7、全套工具包

8、应急响应笔记


使用 python3 在本地开启简易的 http 服务 。
点击下一步 , 果不其然存在 SSRF 。
进行漏洞分析 。 根据 burpsuite 抓到的请求包很容易定位到代码位置 。
在文件 upload/plugins/sys/admin/Collect.php#Collect->add , POST 的参数cjurl 未做安全处理被传入到 $this->caiji->str 方法 。
那么我们跟进到 $this->caiji->str 方法 , 但是 phpstorm 找不到定义该方法的位置 。
解决办法 , 我们可以连续按两下 Shift 键直接寻找 。
跟进到 str 方法后 , 发现 url 参数被传入 htmlall 方法 , 继续跟进该方法 。
可以看到 htmlall 方法使用了 curl 请求 url 。
基本上有调用 $this->caiji->str 方法的地方都存在 SSRF 漏洞 。 文件覆盖导致 GETSHELL:通过敏感函数回溯参数过程的方式找到该漏洞 。
在 upload/cscms/app/helpers/common_helper.php#write_file 使用了文件写入的敏感函数 , 跟 SSRF 的 htmlall 是同一个文件 。

相关经验推荐