点击此处获得更好的阅读体验
WriteUp来源
本WP来自Jazz
原创投稿
题目考点
PHP语言
include函数
php://filter伪协议
filter过滤器
解题思路
开局给出源代码
源码不用怎么看 大致需要知道 file参数内容里前6个字符必须是php://
这道题的考点是php://filter
php://filter可以作为一个中间流来处理其他流,具有四个参数:
名称 | 描述 | 备注 |
---|---|---|
resource=<要过滤的数据流>要过滤的数据流> | 指定了你要筛选过滤的数据流。 | 必选 |
read=<读链的筛选列表>读链的筛选列表> | 可以设定一个或多个过滤器名称,以管道符( | )分隔。 |
write=<写链的筛选列表>写链的筛选列表> | 可以设定一个或多个过滤器名称,以管道符( | )分隔。 |
<;两个链的筛选列表> | 任何没有以 read= 或 write= 作前缀 的筛选器列表会视情况应用于读或写链。 |
这道题就直接构造payload了
1
/?file=php://filter/resource=/flag
有些比赛赛题情况下还要用base64输出
1
/?file=php://filter/read=convert.base64-encode/resource=/flag