Web安全_文件包含(中安全级别和高安全级别DVWA实验)

一、中安全级别DVWA实验

之前所写的文章是在DVWA里的低安全级别进行的实验,低安全级别对于文件包含没有任何限制。中安全级别的实验对文件包含进行了限制。

 <?php
    $file = $_GET['page']; // 接收所包含文件的参数
    // 下面的两条语句对所包含文件进行限制
    $file = str_replace("http://", "", $file);//如果page的参数中出现http://则会用空来将其代替
    $file = str_replace("https://", "", $file);//如果page的参数中出现https://则会用空来将其代替
?> 

基于此限制,可以通过拼凑来绕过
接下来进行实验:
首先需要在kali linux下开启apache服务,具体方法参见之前所写的文章。kali linux充当一个远程服务器供靶机进行访问。然后我们在apache的目录下上传一个txt文件,我上传一个demo.txt,内容为hello。如果可以远程文件包含成功,则会显示hello。

  • 先将DVWA安全级别调为中安全级别
  • 然后打开文件包含页面,给page传入参数http://URL/demo.txt
    在这里插入图片描述
    发现,没有反应
  • 那么我们现在开始构造,将参数改为hthttp://tp://URL/demo.txt
    原理就是提前让程序对http://进行替换,当替换之后所剩下的还依然是http://
    在这里插入图片描述
    可以发现,我们已经成功看到hello。说明已经成功进行文件包含。

二、高安全级别DVWA实验

首先查看下限制的代码

 <?php   
    $file = $_GET['page']; //The page we wish to display 
    // Only allow include.php
    if ( $file != "include.php" ) {
        echo "ERROR: File not found!";
        exit;
    }
?> 

可以看出,这个限制只允许page的参数为include.php
如果与这个限制有一点差别都将会报错。
所以这也是最安全的限制。也是防止文件包含比较有效的一种方法。

猜你喜欢

转载自blog.csdn.net/BeatRex/article/details/84728341