• 首页 首页 icon
  • 工具库 工具库 icon
    • IP查询 IP查询 icon
  • 内容库 内容库 icon
    • 快讯库 快讯库 icon
    • 精品库 精品库 icon
    • 问答库 问答库 icon
  • 更多 更多 icon
    • 服务条款 服务条款 icon

文件包含-DVWA练习

武飞扬头像
救命救敏
帮助2

文件包含-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" )
设置了白名单,无法绕过

到此为止,我们就练习完了

这篇好文章是转载于:编程之路

  • 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
  • 本站站名: 编程之路
  • 本文地址: /boutique/detail/tanhhfkaga
系列文章
更多 icon
同类精品
更多 icon
继续加载