php文件包含日志,ThinkPHP 5日志文件包含trick

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

78ee00020f5ae96aeef793e125d4d972.png

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

59a587d787de36d8b079172e9c663ae2.png

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

对应代码:

2713733b637def7bd9948836a4a9b155.png

一个个分析一下:

ip可以用X-Forwarded-For等,但最后都过滤了

d5cc9af5aca353629ff518434dbdcd5c.png

method:

d5e0e0ba15f833a3c259a03f50025306.png

host:

7de2e9bc7ba77e859a22a966cdeb2a76.png

uri:

5ff97b088edc33be25fb6bd2dcdd3cc3.png

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

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();?>

一一对应:

0103199fcb2bd01f7353ee566659b390.png

6eaca1c8a1a0960e48e3d30520903712.png

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

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

257055a47a01957434fb01140e07ca44.png

f64c4d69a3a9d170f1fa6930b85338d9.png

05fbf273ba213902589edba0e0e20ad0.png

0x02 总结

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值