pikachu靶场File Inclusion-local测试报告
一、测试环境
1、系统环境
渗透机:本机(127.0.0.1)
靶 机:本机(127.0.0.1)
2、使用工具/软件
测试网址:http://127.0.0.1/pikachu/pikachu/vul/fileinclude/fi_local.php
二、测试目的
实现文件包含漏洞,进行file本地文件包含,包含到www目录下的1.txt文件。
三、操作过程
1、使用file协议读取文件
点击提交查询,参数在url中就有显示了
?filename=&submit=提交查询
读取1.txt文件
文件包含默认使用就是file协议,可以不写file协议头
构造../读取上级目录文件,不断尝试,直到查出1.txt文件
构造5个../成功包含到1.txt文件
http://127.0.0.1/pikachu/pikachu/vul/fileinclude/fi_local.php?filename=../../../../../1.txt&submit=%E6%8F%90%E4%BA%A4%E6%9F%A5%E8%AF%A2
四、源代码分析
<?php
/*** Created by runner.han* There is nothing new under the sun*/$SELF_PAGE = substr($_SERVER['PHP_SELF'],strrpos($_SERVER['PHP_SELF'],'/')+1);if ($SELF_PAGE = "fi_local.php"){$ACTIVE = array('','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','active open','','active','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','');
}$PIKA_ROOT_DIR = "../../";
include_once $PIKA_ROOT_DIR . 'header.php';$html='';
if(isset($_GET['submit']) && $_GET['filename']!=null){$filename=$_GET['filename'];include "include/$filename";//变量传进来直接包含,没做任何的安全限制
// //安全的写法,使用白名单,严格指定包含的文件名
// if($filename=='file1.php' || $filename=='file2.php' || $filename=='file3.php' || $filename=='file4.php' || $filename=='file5.php'){
// include "include/$filename";// }
}?>
直接将参数传进去包含,没有做任何安全限制。
五、结论
文件包含漏洞如果没有对传入参数做限制,会造成文件泄露,也有getshell风险。