读取源代码

点击此处获得更好的阅读体验


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