一、PHP://INPUT
Example 1:造成任意代码执行
源代码:
<meta charset="utf8">
<?php
error_reporting(0);
$file = $_GET["file"];
if(stristr($file,"php://filter") || stristr($file,"zip://") || stristr($file,"phar://") || stristr($file,"data:")){
exit('hacker!');
}
if($file){
if ($file!="http://www.baidu.com") echo "tips:flag在当前目录的某个文件中";
include($file);
}else{
echo '<a href="?file=http://www.baidu.com">click go baidu</a>';
}
?>
根据源代码来看,filter、zip、phar、data等伪协议都被过滤了。
但php://input这个伪协议没有被过滤,我们可以在这里做文章。
先用dir看看目录,发现有flag,然后直接读取出来就行。