ThinkPHP 5日志文件包含trick

0x00 前言 本文源于实战场景,以下所有测试均基于Fastadmin前台模版getshell漏洞环境 环境: Win10  Phpstudy 2018   PHP-7.0.12 NTS+Apache Fastadmin V1.2.0.20210125_full  ThinkPHP 5.0.24 Fastadmin默认配置 (不开启app_debug和app_trace)   0x01 正文 我们知道在Thinkphp 5没有开启app_debug的时候,能够写入日志文件的信息很少

而且只有触发报错的时候才会写入部分日志信息,如下:

而直接用url传入php代码,空格会被urlencode

 

观察日志信息,与及分析代码,可控有蓝色框的请求IP地址,红色圆圈的请求方法,与及后面的host和请求uri 

对应代码:

一个个分析一下: ip可以用X-Forwarded-For等,但最后都过滤了

 

 

method:

 

host:

 

uri:

 

可以发现可用的选择还挺多的:

method可以用X-HTTP-METHOD-OVERRIDE头,host可以用:X-REAL-HOST,uri 可以用:X-REWRITE-URL

X-REAL-HOST: <?php phpinfo();?>
X-REWRITE-URL: <?php phpinfo();?>
X-HTTP-METHOD-OVERRIDE: <?php phpinfo();?>

一一对应:

 

 

 

 有一点需要注意(看上图),用method头会换成大写,PHP马写进去之后解析可能会出问题,所以建议还是用host和url的两个头

 实战场景:Fastadmin 普通用户可以登陆,有模版渲染漏洞,没有开app_debug,无法修改头像,用模版渲染日志文件getshell

 

 

 

0x02 总结 遇到类似的场景时,基于tp5 的文件包含、模板渲染写入PHP代码时可尝试用上述的请求头

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐