Docker中启动LocalDVWA容器,准备DVWA环境。在浏览器地址栏输入http://127.0.0.1,中打开DVWA靶机。自动跳转到了http://127.0.0.1/login.php登录页面。输入默认的用户名密码admin:password登录。单击页面左侧的DVWA Security,进行安全级别设置,如图3-18所示。

图3-18  DVWA安全级别

DVWA的安全级别有4种,分别为Low、Medium、High和Impossible。先选择最低的安全级别,单击Submit按钮确认选择。

单击页面左侧的BruteForce按钮,进入暴力破解测试页面,单击View Source按钮,如图3-19所示。

图3-19  Low Brute Force源代码

获取的代码如下:

<?php

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

    // Getusername

    $user =$_GET[ 'username' ];

    // Getpassword

    $pass =$_GET[ 'password' ];

    $pass =md5( $pass );

    // Checkthe 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 passwordincorrect.</pre>";

    }

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

}
?>

  

从代码中可以看出,服务器没有对输入的用户名和密码做任何的检查,直接就进行了SQL查询。这种情况用SQL注入也非常的方便,但这里测试的是暴力破解。

浏览器启用SwitchyOmega的Burp Suite模式,启动Burp Suite监听本地的8080端口。在页面中任意输入一个用户名和密码,如图3-20所示。

图3-20  DVWA发送数据到Burp Suite

关闭浏览器其他的标签页,避免干扰。启动Burp Suite,打开Proxy标签页的Intercept项,将项目按钮调整成Intercept is on,如图3-21所示。

图3-21  Burp Suite拦截

回到DVWA页面中,单击Login按钮。浏览器向服务器127.0.0.1发送数据,通过127.0.0.1:8080端口,被Burp Suite拦截。Burp Suite显示拦截下来的数据,如图3-22所示。

图3-22  拦截的数据

在Raw的文本框中单击鼠标邮件,在弹出的菜单中选择Send toIntruder选项,Burp Suite将拦截得到的数据发送给了Intruder,进行选择、分析,如图3-23所示。

图2-23  Send Data to Intruder

单击Burp Suite的Intruder标签,选择Positions项目。这里是暴力破解的主战场,可以看到Intruder已经将页面发送数据中所有可爆破的参数都标示出来了,如图2-24所示。

图2-24  Intruder项目

这里所有标示出来的参数都是可以用于暴力破解的。实际上只需要暴力破解username和password这两个参数就可以。单击Clear$按钮。清除所有备选目标,然后选择需要暴力破解的两个参数username和passowrd,单击Add$按钮,将这两个攻击目标的参数标示起来,如图2-25所示。

图3-25  选择暴力破解目标

再来看看Intruder项目的攻击模式Attack type。Intruder的攻击模式有4种。分别为Sniper、Battering ram、pitchfork、Cluster Bomb模式。

Sniper是狙击模式,这种模式适合单一的目标参数破解。以本次破解为例,如果已知了用户名username,那就只需要暴力破解密码password就可以了。这就是单一的目标参数破解。只需要给一个字典,Intruder就用这个字典中的所有密码测试一遍。假设已给出密码字典为[a, b, c, d],破解方式为:

Password

-------------

 a

 b

 c

 d

  

Battering ram是撞击模式,这种模式不管有多少个目标参数破解,都只用一个密码字典。以本次破解为例,有两个目标参数需要破解,Intruder将密码字典中的密码同时给这两个目标,假设已给出密码字典为[a, b, c, d],破解方式为:

username | password

a  | a

b  | b

c  | c

d  | d

Pitchfork是交叉模式,这种模式中有多少个目标参数,就需要给多少个密码字典。以本次破解为例,有两个目标参数需要破解。假设给出的2个字典分别包含的是[1, 2]和[a, b, c, d]。Intruder将破解2次,破解方式为:

username | password

1  | a

 2  | b

Cluster bomb是集束炸弹模式,这种模式的中有多少目标参数,就需要多少个密码字典。以本次破解为例,有两个目标参数需要破解。假设给出的2个字典分别包含的是[1, 2]和[a, b, c, d]。破解方式为:

username | password

1  | a

1  | b

1  | c

1  | d

2  | a

2  | b

2  | c

2  | d

  本次破解有2个目标参数username和password,需要2个字典。选择Cluster bomb模式,如图3-26所示。

图3-26  Attack Type

单击Payloads标签,为目标设置字典。第一个目标参数是username,用户名一般就是[root, admin, administrator],将这几个用户名输入到第一个目标参数的密码字典中去,如图3-27所示。

图3-27  输入用户名到字典

第2个目标参数是password,将创建的weak_top25.txt文件作为密码字典就可以了,如图3-28所示。

图3-28  载入文件作密码字典

所有设置完毕后,单击Startattack按钮开始破解。最后得到的结果如图3-29所示。

图3-29  Low安全级别的破解

Length是从服务器返回数据的长度。只有一个长度与众不同,那这个用户名和密码必定是正确的。测试一下,回到DVWA的Brute Force项目,输入用户名和密码admin:password,单击Login按钮,返回的结果如图3-30所示。

图3-30  测试结果

验证用户名密码可用。暴力破解成功。

有兴趣的欢迎一起读这本书《11招玩转网络安全——用Python,更安全》

《11招玩转网络安全》之第三招:Web暴力破解-Low级别的更多相关文章

  1. 《11招玩转网络安全》之第一招:Docker For Docker

    玩转黑客那些工具,缺少了虚拟机怎么行,除了用虚拟机虚拟整个系统,Docker也不能缺少,读者只需要知道,Docker只虚拟Linux系统中的某个程序就可以了.本节就来介绍Linux下安装设置Docke ...

  2. 《11招玩转网络安全》之第五招:DVWA命令注入

    首先还是将DVWA的安全级别设置为Low,然后单击DVWA页面左侧的Command Injection按钮. ​ 图5-1  Low级别的命令注入 这个就是最典型的命令注入接口.在文本框中输入一个IP ...

  3. 《11招玩转网络安全》之第四招:low级别的DVWA SQL注入

    以DVWA为例,进行手工注入,帮助读者了解注入原理和过程. 1.启动docker,并在终端中执行命令: docker ps -a docker start LocalDVWA docker ps 执行 ...

  4. 11招玩转黑客攻防——用Python,更安全

    Python真是无所不能,学习Python,一个暑假就够了 !! 入门Python,从黑客入手最好玩.最简单 !! 今天就推荐一本书<11招玩转网络安全——用Python,更安全> 内网攻 ...

  5. 8天玩转并行开发——第三天 plinq的使用

    原文 8天玩转并行开发——第三天 plinq的使用 相信在.net平台下,我们都玩过linq,是的,linq让我们的程序简洁优美,简直玩的是爱不释手,但是传统的linq只是串行代码,在并行的 年代如果 ...

  6. 从20s优化到500ms,我用了这三招

    前言 接口性能问题,对于从事后端开发的同学来说,是一个绕不开的话题.想要优化一个接口的性能,需要从多个方面着手. 其实,我之前也写过一篇接口性能优化相关的文章<聊聊接口性能优化的11个小技巧&g ...

  7. 云计算之路-阿里云上:消灭“黑色n秒”第三招——禁用网卡的TCP/IP Offload

    程咬金有三板斧,我们有三招.在这篇博文中我们要出第三招,同时也意味着昨天在“希望的田野”上的第二招失败了. 前两招打头(CPU)不凑效,这一招要换一个部位,但依然要坚持攻击敌人最弱(最忙最累)部位的原 ...

  8. 【原创】IE11惊现无厘头Crash BUG(三招搞死你的IE11,并提供可重现代码)!

    前言 很多人都知道我们在做FineUI控件库,而且我们也做了超过 9 年的时间,在和浏览器无数次的交往中,也发现了多个浏览器自身的BUG,并公开出来方便大家查阅: 分享IE7一个神奇的BUG(不是封闭 ...

  9. 【原创】三招搞死你的IE11,可重现代码下载(IE Crash keyframes iframe)!

    前言 很多人都知道我们在做FineUI控件库,而且我们也做了超过 9 年的时间,在和浏览器无数次的交往中,也发现了多个浏览器自身的BUG,并公开出来方便大家查阅: 分享IE7一个神奇的BUG(不是封闭 ...

随机推荐

  1. Postgres中文分词

    环境 CentOS Linux release 7.2.1511 (Core) 安装Postgres 安装postgres很简单 yum安装 sudo yum install postgresql-s ...

  2. CTF杂项之音频隐写

    题目来自bugku 二话不说,直接上图 由题目可以看出,这题需要用到一个KEY,加上又是一段音频,很容易联想到一个著名的音频隐写解密软件Mp3stego 直接上工具 ok,成功Get Flag

  3. 用jenkins创建节点

    原料:(1)jre下载链接:https://www.oracle.com/technetwork/java/javase/downloads/jre8-downloads-2133155.html ( ...

  4. Windows -- 从注册表删除IE浏览器加载项

    Windows -- 从注册表删除IE浏览器加载项 1.  一部分加载项从注册表以下位置直接删除 2.  一部分扩展项从注册表以下位置直接删除

  5. 使用ES6的模块编写web页面碰到的坑

    昨天写最近在做的web应用时,在web页面的js文件中使用了模块功能,这样在html文件中只需要导入一个js就好了

  6. Net core 关于缓存的实现

    在很多项目中, 需要用到缓存,借鉴网上前辈们的一些经验,自己再进行总结简化了一些, 做出如下的缓存操作,其中包含内存缓存(IMemoryCache) 和 Redis 缓存; 一.前提内容, 导入两个包 ...

  7. Springcloud zuul和shiro结合

    一.目标1.外部请求统一从网关zuul进入,并且服务内部互相调用接口要校验权限 2.cloud和shiro结合,达到单点登录,和集中一个服务完成权限管理,其他业务服务不需要关注权限如何实现 3.其他服 ...

  8. B+树和B-树的区别

    https://www.jianshu.com/p/92d15df75027 这个网站好! https://www.cs.usfca.edu/~galles/visualization/BTree.h ...

  9. String,StringBuffer与StringBuilder的区别?? 缓存

    转: String 字符串常量StringBuffer 字符串变量(线程安全)StringBuilder 字符串变量(非线程安全) 简要的说, String 类型和 StringBuffer 类型的主 ...

  10. 在vue 里使用腾讯ditu

    https://www.cnblogs.com/mrer/p/7144705.html