- https://www.cnblogs.com/r00tuser/p/14344922.html
0x01 前言 本文源于实战场景,以下所有测试均基于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) 0x02 正文 我们知道在Thinkphp5没有开启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 0x03 总结 遇到类似的场景时,基于tp5的文件包含、模板渲染写入PHP代码时可尝试用上述的请求头。 关注公众号回复“9527”可免费获取一套HTB靶场文档和视频,“1120”安全参考等安全杂志PDF电子版,“1208”个人常用高效爆破字典,“0221”2020年酒仙桥文章打包,还在等什么?赶紧点击下方名片关注学习吧!