wen安全之PHP伪协议(专题)

1 php://filter

php://filter用于读取源码,php://input用于执行php代码

Copy
?page=php://filter/read=convert.base64-encode/resource=../flag.php

2 file://协议

用于访问本地文件系统,不受allow_url_fopen与allow_url_include的影响

即file:// [文件的绝对路径和文件名]

Copy
?path=file:///var/www/html/flag.txt

3 php://input

php://input 可以访问请求的原始数据的只读流, 将post请求中的数据作为PHP代码执行

php://input 可以用来生成一句话

利用该方法,我们可以直接写入php文件,输入file=php://input,然后使用burp抓包,写入php代码:

4 data://协议

利用data:// 伪协议可以直接达到执行php代码的效果,例如执行phpinfo()函数:

如果此处对特殊字符进行了过滤,我们还可以通过base64编码后再输入:

Copy
?page=data://text/plain;base64,PD9waHAgcGhwaW5mbygpPz4=

5 zip://, bzip2://, zlib://协议

zip://, bzip2://, zlib:// 均属于压缩流,可以访问压缩文件中的子文件,不需要指定后缀名

如果网站允许我们上传压缩文件,我们也可以将php文件压缩后进行上传,再通过zip://协议执行。

以DVWA平台为例,我们将phpinfo.php文件进行压缩后上传:

通过zip://协议执行zip压缩包中的phpinfo.php文件:

0x03 总结

 
posted @ 2020-08-12 17:21  CQY_23  阅读(109)  评论(0)    收藏  举报