前言
前置工作
寻找cms及搭建
配置debug
xdebug
,这里我个人用的是vscode
编辑器,当然你用phpstorm
也是可以的,配置过程如下-
首先在 vscode
的应用商店下载php debug
插件 -
在 php.ini
添加
[XDebug]
xdebug.profiler_output_dir ="D:phpStudyPHPTutorialtmpxdebug"
xdebug.trace_output_dir ="D:phpStudyPHPTutorialtmpxdebug"
zend_extension="D:phpStudyPHPTutorialphpphp-7.1.13-ntsextphp_xdebug.dll"
xdebug.remote_enable = on
xdebug.remote_autostart = on
-
在文件-》首选项-》设置-》用户-》扩展-》 settings.json
{
"php.validate.executablePath": "D:/phpStudy/PHPTutorial/php/php-7.1.13-nts/php.exe",
"editor.mouseWheelZoom": true,
"php.executablePath": "D:/phpStudy/PHPTutorial/php/php-7.1.13-nts/php.exe",
"workbench.editorAssociations": [
{
"viewType": "jupyter.notebook.ipynb",
"filenamePattern": "*.ipynb"
}
],
"explorer.confirmDelete": false
}
-
launch.json
添加
{
"version": "0.2.0",
"configurations": [
{
"name": "Listen for Xdebug",
"type": "php",
"request": "launch",
"port": 9000
},
]
}
1.php
打个断点,然后访问http://127.0.0.1/1.php
,如果出现如下,就说明xdebug
环境就成功搭建了文件上传漏洞
rce
的高危漏洞,而想要rce
最常见的就是文件上传黑盒思路
cms
,进入后台之后在发布文章处找到有可以上传图片的地方1.php
,发现提示上传图片发生错误,应该是被过滤了1.jpg
,抓包改一下getshell
wx_share_cover.php
,这个文件的名字是固定的,于是我们访问试试看getshell
白盒思路
php
文件上传的函数是move_uploaded_file()
,或者一般来说上传的方法名是有upload
关键字的,我们可以全局搜索他们定位到上传功能的代码里面validate
的check
就是这里的过滤,我们用上面的方法绕过即可,如果想清楚的跟踪进这个函数就可以在这里打个断点,然后分析rce
漏洞,我们还可以找找file_put_content
等可以直接写文件的函数任意文件删除
unlink
函数第一处
$directory
是我们可控的,而且没用做任何的过滤,说不定就可以穿越目录从而任意删除文件了,我们先手动加一个var_dump(scandir("."));
来观察一下这里所处的位置public
的目录下,那我们就在上一层目录随便新建一个目录,里面随便新建几个文件试试看http://www.test123.com/system/dir/del?directory=../123
txt
文件都被删除了,但是文件夹没有被删除412315
里面的文件就可以输入http://www.test123.com/system/dir/del?directory=../123/412315
第二处
123
目录了http://www.test123.com/system/dir/delDir?directory=../123
反序列化漏洞
cms
又是thinkphp6.0
的版本,我们可以再找一下有没有可以触发phar
函数的漏洞第一处
is_dir
函数吗,而且又是可以控制的,真是踏破铁鞋无觅处得来全不费功夫test.jpg
,然后利用上面的任意文件删除漏洞上传,上传到这个位置{"code":1,"msg":"上传成功","url":["http://www.test123.com/uploads/postImages/20210404\3c5ea1104433e1cb734be47ab8377a11.jpg"]}
phar
协议去触发这个文件即可rce
http://www.test123.com/system/dir/del?directory=phar://uploads/postImages/20210404/3c5ea1104433e1cb734be47ab8377a11.jpg
第n处
is_dir
,我们可以再找找还有没有其他地方能够触发的,随手一找又发现两处is_dir
函数,没算上其他的就已经那么多了,这个 cms 真是"漏洞百出"推荐阅读:
▶【渗透实战系列】25|一次从 APP 逆向到 Getshell 的过程
▶【渗透实战系列】24|-针对CMS的SQL注入漏洞的代码审计思路和方法
▶【渗透实战系列】18-手动拿学校站点 得到上万人的信息(漏洞已提交)
▶【渗透实战系列】|17-巧用fofa对目标网站进行getshell
▶【渗透实战系列】|15-博彩网站(APP)渗透的常见切入点
▶【渗透实战系列】|12 -渗透实战, 被骗4000花呗背后的骗局
▶【渗透实战系列】|10 - 记某色X商城支付逻辑漏洞的白嫖(修改价格提交订单)
▶【渗透实战系列】|9-对境外网站开展的一次web渗透实战测试(非常详细,适合打战练手)
▶【渗透实战系列】|8-记一次渗透测试从XSS到Getshell过程(详细到无语)
▶【渗透实战系列】|6- BC杀猪盘渗透一条龙(文末附【渗透实战系列】其他文章链接)
▶【渗透实战系列】|1一次对跨境赌博类APP的渗透实战(getshell并获得全部数据)
点分享
点收藏
点点赞
点在看
本文始发于微信公众号(Hacking黑白红):【渗透实战系列】26|一记某cms审计过程(步骤详细)
- 左青龙
- 微信扫一扫
- 右白虎
- 微信扫一扫
评论