前言
Thinkphp5日志文件包含trick,一种对日志进行文件包含的利用方式
环境
-
thinkphp5.0.24 变量覆盖rce修复版本,不在未开启强制路由rce影响版本
-
未开启app_debug
利用条件
- 日志路径
- 包含点
分析
控制器写入一个可以触发错误的方法,发现传入的php代码会进行url编码
跟进日志相关函数
四个相关函数进行分析
ip:
ip可以用XFF HCI RA等字段,但是最后有检测合法性,ip2long检测ip为无效返回false,最后设置ip为0.0.0.0
method:
这里并没有进行过滤,但是最后返回的是大写 HTTP_X_HTTP_METHOD_OVERRIDE
host:
直接返回 HTTP_X_REAL_HOST
url:
返回 HTTP_X_REWRITE_URL
添加头部信息
X-REAL-HOST: <?php phpinfo();?>
X-REWRITE-URL: <?php phpinfo();?>
X-HTTP-METHOD-OVERRIDE: <?php phpinfo();?>
包含日志文件