php 伪协议
首先来看一下有哪些文件包含函数:
Copyinclude、require、include_once、require_once、highlight_file |
有哪些伪协议:
Copyfile:// — 访问本地文件系统 |
2.1 php://filter
php://filter用于读取源码,php://input用于执行php代码
Copy?page=php://filter/read=convert.base64-encode/resource=../flag.php |
2.2 file://协议
用于访问本地文件系统,不受allow_url_fopen与allow_url_include的影响
即file:// [文件的绝对路径和文件名]
Copy?path=file:///var/www/html/flag.txt |
2.3 php://input
php://input 可以访问请求的原始数据的只读流, 将post请求中的数据作为PHP代码执行
php://input 可以用来生成一句话
利用该方法,我们可以直接写入php文件,输入file=php://input,然后使用burp抓包,写入php代码:
2.4 data://协议
利用data:// 伪协议可以直接达到执行php代码的效果,例如执行phpinfo()函数:
2.5 zip://, bzip2://, zlib://协议
zip://, bzip2://, zlib:// 均属于压缩流,可以访问压缩文件中的子文件,不需要指定后缀名
如果网站允许我们上传压缩文件,我们也可以将php文件压缩后进行上传,再通过zip://协议执行。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Gu0f3n's blog!