热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

php文件包含日志,ThinkPHP5日志文件包含trick

而且只有触发报错的时候才会写入部分日志信息,如下:而直接用url传入php代码,空格会被urlencode观察日志信息,与及

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

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: X-REWRITE-URL:X-HTTP-METHOD-OVERRIDE:

一一对应:

0103199fcb2bd01f7353ee566659b390.png

6eaca1c8a1a0960e48e3d30520903712.png

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

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

257055a47a01957434fb01140e07ca44.png

f64c4d69a3a9d170f1fa6930b85338d9.png

05fbf273ba213902589edba0e0e20ad0.png

0x02 总结

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



推荐阅读
author-avatar
mobiledu2502909131
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有