zoukankan      html  css  js  c++  java
  • 《11招玩转网络安全》之第三招:Web暴力破解-Low级别

    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,更安全》

  • 相关阅读:
    sqlplus时报Linux-x86_64 Error: 13: Permission denied
    thrift之TTransport层的缓存传输类TBufferedTransport和缓冲基类TBufferBase
    Java实现 蓝桥杯 算法提高 新建Microsoft world文档
    Java实现 蓝桥杯 算法提高 新建Microsoft world文档
    Java实现 蓝桥杯 算法提高 快乐司机
    Java实现 蓝桥杯 算法提高 快乐司机
    Java实现 蓝桥杯 算法提高 队列操作
    Java实现 蓝桥杯 算法提高 队列操作
    Java实现 蓝桥杯 算法提高 文本加密
    Java实现 蓝桥杯 算法提高 合并石子
  • 原文地址:https://www.cnblogs.com/liqiang001/p/9286302.html
Copyright © 2011-2022 走看看