DVWA 靶场之 Brute Force-Low&Medium(前期配置铺垫与渗透方法及源码分析)

这篇具有很好参考价值的文章主要介绍了DVWA 靶场之 Brute Force-Low&Medium(前期配置铺垫与渗透方法及源码分析)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

首先登录 DVWA 靶场

DVWA 靶场之 Brute Force-Low&Medium(前期配置铺垫与渗透方法及源码分析),DVWA靶场,web,暴力破解,burpsuite,web,代理模式,web安全

DVWA 默认的用户有5个,用户名及密码如下:


admin/password

gordonb/abc123

1337/charley

pablo/letmein

smithy/password

难度等级设置为 low ,我们先从最简单的开始

DVWA 靶场之 Brute Force-Low&Medium(前期配置铺垫与渗透方法及源码分析),DVWA靶场,web,暴力破解,burpsuite,web,代理模式,web安全

来到 Brute Force(暴力破解)

DVWA 靶场之 Brute Force-Low&Medium(前期配置铺垫与渗透方法及源码分析),DVWA靶场,web,暴力破解,burpsuite,web,代理模式,web安全

我们可以输入用户名和密码

简单测了几个,回显用户名或密码不正确

但是并未对我们输入的内容及次数进行限制,因此直接进行爆破

DVWA 靶场之 Brute Force-Low&Medium(前期配置铺垫与渗透方法及源码分析),DVWA靶场,web,暴力破解,burpsuite,web,代理模式,web安全

暴力破解我们使用工具 burpsuite

DVWA 靶场之 Brute Force-Low&Medium(前期配置铺垫与渗透方法及源码分析),DVWA靶场,web,暴力破解,burpsuite,web,代理模式,web安全

关于 burpsuite 的安装及破解教程网上有很多,我这里就不再过多赘述

之后配置好代理转发,默认是监听本地的 8080 端口

EG 浏览器的话给大家推荐一个好用的小插件:Proxy SwitchyOmega

用来配置代理

DVWA 靶场之 Brute Force-Low&Medium(前期配置铺垫与渗透方法及源码分析),DVWA靶场,web,暴力破解,burpsuite,web,代理模式,web安全

这里还需要解决一个问题,因为我们的 DVWA 靶场搭建在本地,127.0.0.1 是一个回环地址,burpsuite 是无法抓取的,需要替换成自己的内网地址并进行一些配置。

具体参考我之前的博客

关于burpsuite无法抓到本地请求包的解决方案:

https://myon6.blog.csdn.net/article/details/135731145?spm=1001.2014.3001.5502

端口的话为了避免冲突我们重新配一个 

DVWA 靶场之 Brute Force-Low&Medium(前期配置铺垫与渗透方法及源码分析),DVWA靶场,web,暴力破解,burpsuite,web,代理模式,web安全

DVWA 靶场之 Brute Force-Low&Medium(前期配置铺垫与渗透方法及源码分析),DVWA靶场,web,暴力破解,burpsuite,web,代理模式,web安全

之后我们访问靶场地址时将 127.0.0.1 替换为自己内网 ip ,我这里是 192.168.112.221

然后重新登录进入靶场,重新设置难度等级

简单测试一下,抓包成功

DVWA 靶场之 Brute Force-Low&Medium(前期配置铺垫与渗透方法及源码分析),DVWA靶场,web,暴力破解,burpsuite,web,代理模式,web安全

接下来我们正式进入暴力破解

开启 burpsuite 拦截抓包,先随便输一个用户名和密码进行登录

DVWA 靶场之 Brute Force-Low&Medium(前期配置铺垫与渗透方法及源码分析),DVWA靶场,web,暴力破解,burpsuite,web,代理模式,web安全

将包发到攻击模块(intruder)

设置爆破位置:

DVWA 靶场之 Brute Force-Low&Medium(前期配置铺垫与渗透方法及源码分析),DVWA靶场,web,暴力破解,burpsuite,web,代理模式,web安全

选择爆破模式:

DVWA 靶场之 Brute Force-Low&Medium(前期配置铺垫与渗透方法及源码分析),DVWA靶场,web,暴力破解,burpsuite,web,代理模式,web安全

配置攻击载荷(这里也就是爆破的字典)

DVWA 靶场之 Brute Force-Low&Medium(前期配置铺垫与渗透方法及源码分析),DVWA靶场,web,暴力破解,burpsuite,web,代理模式,web安全

这种字典网上也有很多,自行下载导入即可 

DVWA 靶场之 Brute Force-Low&Medium(前期配置铺垫与渗透方法及源码分析),DVWA靶场,web,暴力破解,burpsuite,web,代理模式,web安全

配置好后我们直接开始攻击 

DVWA 靶场之 Brute Force-Low&Medium(前期配置铺垫与渗透方法及源码分析),DVWA靶场,web,暴力破解,burpsuite,web,代理模式,web安全

我们需要筛选出长度不同的

长度不同说明回显结果不一样(一般就是成功了的)

DVWA 靶场之 Brute Force-Low&Medium(前期配置铺垫与渗透方法及源码分析),DVWA靶场,web,暴力破解,burpsuite,web,代理模式,web安全

通过暴力破解我们得到登录用户名和密码为:admin/password 这种就是弱口令 

如果你想更深入去了解那么就看它文件的源码

DVWA 靶场之 Brute Force-Low&Medium(前期配置铺垫与渗透方法及源码分析),DVWA靶场,web,暴力破解,burpsuite,web,代理模式,web安全

<?php

if( isset( $_GET[ 'Login' ] ) ) {
    // Get username
    $user = $_GET[ 'username' ];

    // Get password
    $pass = $_GET[ 'password' ];
    $pass = md5( $pass );

    // Check the database
    $query  = "SELECT * FROM `users` WHERE user = '$user' AND password = '$pass';";
    $result = mysqli_query($GLOBALS["___mysqli_ston"],  $query ) or die( '<pre>' . ((is_object($GLOBALS["___mysqli_ston"])) ? mysqli_error($GLOBALS["___mysqli_ston"]) : (($___mysqli_res = mysqli_connect_error()) ? $___mysqli_res : false)) . '</pre>' );

    if( $result && mysqli_num_rows( $result ) == 1 ) {
        // Get users details
        $row    = mysqli_fetch_assoc( $result );
        $avatar = $row["avatar"];

        // Login successful
        echo "<p>Welcome to the password protected area {$user}</p>";
        echo "<img src=\"{$avatar}\" />";
    }
    else {
        // Login failed
        echo "<pre><br />Username and/or password incorrect.</pre>";
    }

    ((is_null($___mysqli_res = mysqli_close($GLOBALS["___mysqli_ston"]))) ? false : $___mysqli_res);
}

?>

这段代码是一个简单的登录系统,但存在很多的安全问题 :

1、在 SQL 查询中,用户提供的 username 和 password 直接被拼接到查询语句中,这可能导致 SQL 注入攻击。攻击者可以在输入中插入恶意代码来绕过身份验证或者获取敏感信息。

$user = $_GET['username'];
$pass = $_GET['password'];
$query  = "SELECT * FROM `users` WHERE user = '$user' AND password = '$pass';";

2、使用了 md5 进行密码哈希,这是一个弱哈希算法,易于被暴力破解。

$pass = md5( $pass );

3、在使用 mysqli_query() 执行查询之前没有检查数据库连接的状态,也没有正确关闭数据库连接,这可能会导致资源泄漏或者其他问题。

$result = mysqli_query($GLOBALS["___mysqli_ston"],  $query ) or die( '<pre>' . ((is_object($GLOBALS["___mysqli_ston"])) ? mysqli_error($GLOBALS["___mysqli_ston"]) : (($___mysqli_res = mysqli_connect_error()) ? $___mysqli_res : false)) . '</pre>' );
((is_null($___mysqli_res = mysqli_close($GLOBALS["___mysqli_ston"]))) ? false : $___mysqli_res);

4、当数据库查询失败时,直接将详细的错误信息暴露给用户,可能造成敏感信息泄露。

die( '<pre>' . ((is_object($GLOBALS["___mysqli_ston"])) ? mysqli_error($GLOBALS["___mysqli_ston"]) : (($___mysqli_res = mysqli_connect_error()) ? $___mysqli_res : false)) . '</pre>' );

5、用户的密码是通过 GET 方法传输的,这意味着密码可能会出现在 URL 中。

if( isset( $_GET[ 'Login' ] ) )

实际测试也确实是这样

DVWA 靶场之 Brute Force-Low&Medium(前期配置铺垫与渗透方法及源码分析),DVWA靶场,web,暴力破解,burpsuite,web,代理模式,web安全

对于 medium 等级其实和 low 方法一样(直接爆破),我们对比源码

DVWA 靶场之 Brute Force-Low&Medium(前期配置铺垫与渗透方法及源码分析),DVWA靶场,web,暴力破解,burpsuite,web,代理模式,web安全

<?php

if( isset( $_GET[ 'Login' ] ) ) {
    // Sanitise username input
    $user = $_GET[ 'username' ];
    $user = ((isset($GLOBALS["___mysqli_ston"]) && is_object($GLOBALS["___mysqli_ston"])) ? mysqli_real_escape_string($GLOBALS["___mysqli_ston"],  $user ) : ((trigger_error("[MySQLConverterToo] Fix the mysql_escape_string() call! This code does not work.", E_USER_ERROR)) ? "" : ""));

    // Sanitise password input
    $pass = $_GET[ 'password' ];
    $pass = ((isset($GLOBALS["___mysqli_ston"]) && is_object($GLOBALS["___mysqli_ston"])) ? mysqli_real_escape_string($GLOBALS["___mysqli_ston"],  $pass ) : ((trigger_error("[MySQLConverterToo] Fix the mysql_escape_string() call! This code does not work.", E_USER_ERROR)) ? "" : ""));
    $pass = md5( $pass );

    // Check the database
    $query  = "SELECT * FROM `users` WHERE user = '$user' AND password = '$pass';";
    $result = mysqli_query($GLOBALS["___mysqli_ston"],  $query ) or die( '<pre>' . ((is_object($GLOBALS["___mysqli_ston"])) ? mysqli_error($GLOBALS["___mysqli_ston"]) : (($___mysqli_res = mysqli_connect_error()) ? $___mysqli_res : false)) . '</pre>' );

    if( $result && mysqli_num_rows( $result ) == 1 ) {
        // Get users details
        $row    = mysqli_fetch_assoc( $result );
        $avatar = $row["avatar"];

        // Login successful
        echo "<p>Welcome to the password protected area {$user}</p>";
        echo "<img src=\"{$avatar}\" />";
    }
    else {
        // Login failed
        sleep( 2 );
        echo "<pre><br />Username and/or password incorrect.</pre>";
    }

    ((is_null($___mysqli_res = mysqli_close($GLOBALS["___mysqli_ston"]))) ? false : $___mysqli_res);
}

?>

 与 low 的区别:

$user = ((isset($GLOBALS["___mysqli_ston"]) && is_object($GLOBALS["___mysqli_ston"])) ? mysqli_real_escape_string($GLOBALS["___mysqli_ston"],  $user ) : ((trigger_error("[MySQLConverterToo] Fix the mysql_escape_string() call! This code does not work.", E_USER_ERROR)) ? "" : ""));
$pass = ((isset($GLOBALS["___mysqli_ston"]) && is_object($GLOBALS["___mysqli_ston"])) ? mysqli_real_escape_string($GLOBALS["___mysqli_ston"],  $pass ) : ((trigger_error("[MySQLConverterToo] Fix the mysql_escape_string() call! This code does not work.", E_USER_ERROR)) ? "" : ""));

该代码对用户名和密码进行了输入验证,使用了 mysqli_real_escape_string() 函数来消毒输入,转义特殊字符,一定程度上可以防御 SQL 注入攻击。

此外:

sleep( 2 );
echo "<pre><br />Username and/or password incorrect.</pre>";

在登录失败的情况下,该代码添加了一个 sleep(2) 的延迟,它会增加攻击者猜测密码的时间,可以一定程度上抵御暴力破解攻击,但是攻击者任然可以直接进行爆破。

因为攻击流程和方法都一样,因此这里就不做过多演示了。

后面会继续更新 high 难度以及其他漏洞的相关介绍与渗透方法。文章来源地址https://www.toymoban.com/news/detail-827159.html

到了这里,关于DVWA 靶场之 Brute Force-Low&Medium(前期配置铺垫与渗透方法及源码分析)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 搭建本地DVWA靶场教程 及 靶场使用示例

    DVWA(Damn Vulnerable Web Application)一个用来进行安全脆弱性鉴定的PHP/MySQL Web 应用平台,旨在为网络安全专业人员测试自己的专业技能和工具提供合法的环境,帮助web开发者更好的理解web应用安全防范的过程。 DVWA还可以手动调整靶机源码的安全级别,分别为Low,Medium,High,Im

    2024年02月15日
    浏览(36)
  • DVWA靶场通关实战

    截至2022.11.24,DVWA共有十四个模块,分别是: 按我的思路就是,Low、Media、High是拿来攻击的,Impossible是来教你防御的 然后就是缩减了一下目录,本来攻击方式、源码审计、漏洞原理都加了标题,但是那样目录就太长太丑了,想想还是删了算了 直接开冲! 暴力破解,又叫撞库

    2024年02月14日
    浏览(37)
  • dvwa靶场通关(七)

    我们输入 1\\\',出现报错信息,根据报错信息可知,查询语句是单引号闭合的字符型  接着判断字段数 1\\\' order by 3#  报错 1\\\' order by 2# 正常  所以字段数就是2 利用联合查询爆出数据库名和版本  输入 -1\\\' union select database(),version()#  爆出表名 -1\\\'union select 1,group_concat(table_name) from i

    2024年02月10日
    浏览(38)
  • DVWA靶场-文件上传漏洞

           文件上传漏洞,通常是由于对上传文件的类型、内容没有进行严格的过滤、检查,使得攻击者可以通过上传木马获取服务器的webshell权限,因此文件上传漏洞带来的危害常常是毁灭性的,Apache、Tomcat、Nginx等都曝出过文件上传漏洞。 basename(str,name)       函数返回路

    2024年02月07日
    浏览(41)
  • DVWA靶场虚拟机搭建教程

        DVWA是一款面世时间较长的Web渗透靶场,向网络安全专业人员提供合法的专业技能和应用测试环境,其特点是提供了包含Low、Medium、High、Impossible四个等级的渗透防护,防护等级越高,渗透难度越大,平时常用于我们进行XSS、CSRF漏洞的练习等,今天为小伙伴们带来DVWA的安

    2024年02月04日
    浏览(53)
  • 信息安全入门——DVWA靶场搭建

    写在前面:作为刚接触信安的菜鸟,仅将自己的经验分享给大家。如有纰漏欢迎师傅们指正 DVWA搭建所需:                 PHP环境: W indows A pache M ysql P hp(不想自己弄也可直接用phpstudy)                 DVWA源代码(打包见文末) 本文以phpstudy为例 1.下载并安

    2024年02月13日
    浏览(41)
  • DVWA靶场中SQL注入

    1.1.1.Low级别   1)判断注入类型当输入1和1 and 1=2的时候均能够正常返回数值,证明不是数字型输入。那么这里基本上就能够判断是字符型注入。   2)判断字符型注入。输入1’ and 1=2 #的时候出现报错,证明存在字符型注入,并且单引号闭合。   3)判断有多少列当输入

    2024年02月03日
    浏览(52)
  • 漏洞靶场——DVWA+命令执行漏洞

    DVWA是OWASP官方编写的PHP网站,包含了各种网站常见漏洞 DVWA搭建环境: PHP环境+DVWA源代码 https://github.com/digininja/DVWA/archive/master.zip 安装phpstudy 命令执行漏洞是指服务器没有对执行的命令进行过滤,用户可以随意执行系统命令,命令执行漏洞属于高危漏洞之一。 命令连接符 :

    2024年02月06日
    浏览(67)
  • Kali搭建DVWA——Web靶场

    ▣ 博主主站地址:微笑涛声 【www.cztcms.cn】 1、DVWA简介 DVWA 是一款基于 PHP 和 MYSQL 开发的 web靶场 练习平台,集成了常见的web漏洞如 sql注入 , XSS , 密码破解 等常见漏洞。旨在为安全专业人员测试自己的专业技能和工具提供合法的环境,帮助web开发者更好的理解web应用安全防

    2024年02月04日
    浏览(39)
  • DVWA靶场之CSRF通关详解

    CSRF的形成原因主要是由于Web应用程序没有充分验证请求来源的问题。正常的请求必须携带正确的Cookie信息,而攻击者可以构造一个恶意网站,在其中包含一个发送CSRF请求的链接或表单,当用户访问这个网站时,浏览器会自动发送CSRF请求到被攻击的网站,从而实现攻击。 随机

    2024年02月10日
    浏览(34)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包