文件包含-DVWA练习
文件包含-DVWA练习
一.前言
首先,我们需要大概知道文件包含是什么,可能会产生哪些漏洞,如何利用这些漏洞
看相关文章文件包含讲解
环境:win10+phpstudy
二.DVWA文件包含
准备工作:将php.ini文件中的allow_url_include以及allow_url_fopen都设置为On,否则无法进行接下来的练习
1.low等级
我们将等级设置为low等级,url输入http://localhost/DVWA/vulnerabilities/view_source.php?id=fi&security=low
我们就可以看到low等级的源代码
可以看到,毫无安全过滤
$file=$_GET['page
]
DVWA上面给了三个文件,分别是file1,2,3
当我们点击它们的时候,可以看到url为http://localhost/DVWA/vulnerabilities/fi/?page=file1.php
前面说过,low等级是毫无安全过滤的,这意味着,我们可以在page=
后面放上各种文件位置,去进行读取
(如果是读取不存在的文件或者错误路径的文件,就会发生下面的情况)
我们读取一个正确路径的文件吧(我读取的是phpinfo)
http://localhost/DVWA/vulnerabilities/fi/?page=D:\phpstudy_pro\WWW\php.txt
那么,这有什么意义:这意味着,如果对方没有对文件包含进行安全过滤,那么攻击者就可以乘机而入,了解到一些不是自身权限内的信息
(DVWA网站只希望我们读取file1,2,3,而不让使用者读取别的文件,但是由于文件包含未进行安全过滤,我们可以读取c盘以及各个盘中的文件)
2.medium等级
我们将等级设置为medium等级,url输入http://localhost/DVWA/vulnerabilities/view_source.php?id=fi&security=medium
我们就可以看到medium等级的源代码
很显然,medium等级进行了非常简单的过滤
$file = str_replace( array( "http://", "https://" ), "", $file );
$file = str_replace( array( "../", "..\\" ), "", $file );
这段代码的意思是将"http://", “https://” “…/”, “…\” 全部替换为空字符
但这种替换仍然不安全,因为str_replace只能替换一次
输入http://localhost/DVWA/vulnerabilities/fi/?page=http://localhost/php.txt
显示错误
url输入http://localhost/DVWA/vulnerabilities/fi/?page=hthttp://tp://localhost//php.txt
进行绕过就可以了
3.high等级
我们将等级设置为high等级,url输入http://localhost/DVWA/vulnerabilities/view_source.php?id=fi&security=high
我们就可以看到high等级的源代码
if( !fnmatch( "file*", $file ) && $file != "include.php" )
这个的意思是确保page=后的路径必须以file开头或者是include.php
我们可以利用file协议绕过
url输入http://localhost/DVWA/vulnerabilities/fi/page=file://D:\phpstudy_pro\WWW\php.txt
仍然成功了
4.impossible等级
我们将等级设置为impossible等级,url输入http://localhost/DVWA/vulnerabilities/view_source.php?id=fi&security=impossible
我们就可以看到impossible等级的源代码
if( $file != "include.php" && $file != "file1.php" && $file != "file2.php" && $file != "file3.php" )
设置了白名单,无法绕过
到此为止,我们就练习完了
来源地址:https://blog.csdn.net/qq_63087425/article/details/127432105
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341