1
概述
文
件包含(
Local File Include
)是
php
脚本的一大特色,程序员们为了开发的方便,常
常会用到包含。比如把一系列功能函数都写进
fuction.php
中,之后当某个文
件需要调用
的时候就直接在文件头中写上一句
就可以调用内部定义的函
数。
本地包含漏洞是
PHP
中一种典型的高危漏洞。由于程序员未对用户可控的变量进行输入检
查,
导致用户可以控制被包含的文件,
成功利用时可以使
web
server
会将特定文件当成
php
执行,从而导致用户可获取一定的服务器权限。
2
利用
LFI
执行
PHP
代码
2.1
本地包含漏洞实例展示:
演示脚本文件
test.php
代码如下:
if( !ini_get('display_errors') ) {
ini_set('display_errors', 'On');
}
error_reporting(E_ALL);
$f = $_GET["file"];
if ($f){
require "".$f.".php";
}else{
print("No File Included");
}
?>
在正常使用过程中,
可能是这样子:
http://www.xxx.com/test.php?f=fuction
,
这样子
就
包含了
function
这个文件,
但是由于
file
参数没有过滤,
我们可以自己提交参数内容,
这
个时候就导致了包含漏洞的出现。比如提交
:
http://www.xxx.com/index.php?f=shell.txt%00
,
shell.txt
的内容为我们的
webshell
,
由于前面的是
index.php
,所以会把
shell.txt
当成是木马执行。
在虚拟机搭建实例环境,