关注这个靶场的其它相关笔记:攻防世界(XCTF) —— 靶场笔记合集-CSDN博客
0x01:考点速览
本关的考点是 php://filter
伪协议,关于这个伪协议,可以参考下面这篇文章:
详解php://filter以及死亡绕过_filter绕过过滤-CSDN博客文章浏览阅读1.6w次,点赞49次,收藏274次。详解php://filter以及死亡绕过php://filterPHP 提供了一些杂项输入/输出(IO)流,允许访问 PHP 的输入输出流、标准输入输出和错误描述符, 内存中、磁盘备份的临时文件流以及可以操作其他读取写入文件资源的过滤器。php:// — 访问各个输入/输出流(I/O streams)php://filter 是一种元封装器, 设计用于数据流打开时的筛选过滤应用。 这对于一体式(all-in-one)的文件函数非常有用,类似 readfile()、 file() 和 file_ge_filter绕过过滤http://iyenn.com/rec/1646243.html
0x02:Write UP
进入靶场,看到如下场景,一行报错,一个莫名其妙的语句和一个加粗的提示:
没有获得有用的信息,我们右击检查,查看网页源码,可以看到,源码内泄露了后端的逻辑:
定位漏洞利用点 @include($lan . ".php")
,其中 $lan
是从 Cookie 中获得的。又已知,Flag 被藏在了 flag.php
文件中,所以笔者首先尝试了修改 Cookie 中的 language 字段为 flag:
回显为空,很明显,目标将 Flag 注释了,要想读出来,我们就要对 flag.php
文件进行转义,转义需要用到 php://filter
伪协议,Payload 如下:
Cookie: language=php://filter/convert.base64-encode/resource=flag
然后使用工具进行 Base64 解码,就能成功拿到 Flag 了:
评论记录:
回复评论: