php代码会员可以打开_可以打开php的软件

php代码会员可以打开

前言php代码会员可以打开

利用这个 CMS 看看能不能挖到漏洞,运气还是不错地挖到php代码会员可以打开了两个,分别是 SSRF 与文件覆盖 GETSHELL,下面给大家讲解一下这次审计的思路过程。该 CMS 版本是 4.2。以下漏洞均被 CNVD 收录。

环境说明:

PHP版本用 7.0.9 就好了。

php代码会员可以打开

SSRF:

根据功能点定向审计,在后台的工具栏有一个采集功能,根据经验这种功能一般存在 SSRF。

php代码会员可以打开

php代码会员可以打开

使用 python3 在本地开启简易的 http 服务。

php代码会员可以打开

点击下一步,果不其然的存在 SSRF。

php代码会员可以打开

进行漏洞分析。

【→所有资源关注我,私信回复“资料”获取←】1、网络安全学习路线2、电子书籍(白帽子)3、安全大厂内部视频4、100份src文档5、常见安全面试题6、ctf大赛经典题目解析7、全套工具包8、应急响应笔记

根据 burpsuite 抓到的请求包很容易定位到代码的位置。

php代码会员可以打开

该文件 upload/plugins/sys/admin/Collect.php#Collect->add,POST 的参数cjurl 未做安全处理被传入到 $this->caiji->str *** 。

php代码会员可以打开

那么我们跟进到 $this->caiji->str *** ,但是 phpstorm 找不到定义该 *** 的位置。

php代码会员可以打开

解决办法,我们可以连续按两下 Shift 键直接寻找。

php代码会员可以打开

跟进到 str *** 后,发现 url 参数被传入 htmlall *** ,继续跟进该 *** 。

php代码会员可以打开

可以看到 htmlall *** 使用了 curl 请求 url。

php代码会员可以打开

基本上有调用 $this->caiji->str *** 的地方都存在 SSRF 漏洞。

php代码会员可以打开

文件覆盖导致 GETSHELL:

通过敏感函数回溯参数过程的方式找到该漏洞。在 upload/cscms/app/helpers/common_helper.php#write_file 使用了文件写入的敏感函数,跟 SSRF 的 htmlall 是同一个文件。

php代码会员可以打开

使用 Ctrl+Shift+F 查找哪些位置调用了 write_file,在 upload/plugins/sys/admin/Plugins.php#Plugins->_route_file 调用了 write_file函数,并且 $note[$key]['name'] 和 $note[$key]['url'] 的值是以字符串方式拼接到文件内容的,该内容是注释,我们可以使用换行绕过。

php代码会员可以打开

查找哪些位置调用了 _route_file,跟踪 $note 的值是否可控,调用该函数的位置有很多,最终找到一处可利用。在 upload/plugins/sys/admin/Plugins.php#Plugins->setting_save 调用了 _route_file,由于该函数内容有点多,所以我将它拆分成两个界面,一些不重要的内容进行闭合。画红线的位置是调用到 _route_file 必须设置的,可以看到在标蓝色3的位置获取到了 $note 的值,分析到这里可以开始复现了。

php代码会员可以打开

使用 burpsuite 抓取请求包。

php代码会员可以打开

修改请求包内容写入构造好的代码,可以看到我使用了什么 %0a 换行去绕过去注释。

php代码会员可以打开

在 upload/cscms/config/dance/rewrite.php 可以看到成功写入。

php代码会员可以打开

寻找引用 rewrite.php 的位置,懒得去看代码了,通过点击各个页面,经过不懈努力终于在个人中心的音乐页面找到,所以你需要注册一个会员用户。

php代码会员可以打开

重放 burpsuite 抓到的请求包,成功输出内容。

php代码会员可以打开

到这里其实事情还没有结束,当我尝试写入恶意内容发现被转移了。

php代码会员可以打开

php代码会员可以打开

试了 eval、shell_exec 等均被转移,但是 assert 没有被转移,考虑到 assert 在PHP7版本之后的问题,我还是需要找一个更好的办法。懒得去看转义的代码了,我根据PHP的动态特性使用以下 *** 成功 RCE。

php代码会员可以打开

php代码会员可以打开

总结:

此次代码审计使用了通用代码审计思路的两种,第一种:根据功能点定向审计、第二种:敏感函数回溯参数过程,没有用到的是通读全文代码。活用 phpstorm 可以让代码审计的效率大大增加。

发布于 2024-08-01 08:08:45
收藏
分享
海报
0 条评论
62
目录

    0 条评论

    本站已关闭游客评论,请登录或者注册后再评论吧~