美文网首页
DVWA Brute Force模块

DVWA Brute Force模块

作者: yemansleep | 来源:发表于2018-07-20 10:06 被阅读0次
    Brute Force

    暴力破解法,或称为穷举法,是一种密码分析的方法,即将密码进行逐个推算直到找出真正的密码为止。例如一个已知是四位并且全部由数字组成的密码,其可能共有10000种组合,因此最多尝试9999次就能找到正确的密码。理论上除了具有完善保密性的密码以外,利用这种方法可以破解任何一种密码,问题只在于如何缩短试误时间。有些人运用计算机来增加效率,有些人辅以字典来缩小密码组合的范围。

    1 low level

    使用工具破解

    Brupsuite Intruder模块 暴力破解测试


    爆破成功

    1.1 源码分析:

    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 = mysql_query( $query ) or die( '<pre>' . mysql_error() . '</pre>' ); 
    
        if( $result && mysql_num_rows( $result ) == 1 ) { 
            // Get users details 
            $avatar = mysql_result( $result, 0, "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>"; 
        } 
    
        mysql_close(); 
    } 
    

    查看源码,只验证了参数Login是否被设置,没有任何的防爆破机制。

    2 medium level

    使用工具破解

    Brupsuite Intruder模块 暴力破解测试依然可以爆破

    爆破成功

    2.1 源码分析:

        else { 
            // Login failed 
            sleep( 2 ); 
            echo "<pre><br />Username and/or password incorrect.</pre>"; 
        } 
    

    在low level源码的基础上做了修改,添加了登陆失败需等待2秒才返回结果,但依然无法防范爆破。

    3 high level

    user_token

    通过Brupsuite Intruder抓包发现,除了原先的username,password,Login参数外,还新增了一个user_token参数。

    3.1 分析:

    1.user_token为了防止CSRF,在每次登陆过后都会失效然后返回一个新的user_token Value值用于登陆时提交,防止跨站请求伪造。

    2.使用Brupsuite Intruder模块中的Recursive grep,对服务器响应内容中的user_token Value进行抓取用于下一次爆破时user_token参数的填充。

    3.由于Intruder第0次请求会把抓取的原请求发送过去,再进行字典爆破,导致到利用字典爆破时,user_token参数会失效,从而服务器并不会返回响应内容。


    Recursive grep

    4.经过测试发现,一旦提交错误的user_token参数,服务器会从新加载一次页面,并且会返回一个新的user_token Value,利用这一点,开启Intruder options中的允许Redirections 。


    Redirections

    注:由于字典的第一次爆破会失效,用于从新加载页面,所以需把字典的第一个密码多提交一次。

    爆破成功

    5.Impossible level

    暂时无解,全集终。

    相关文章

      网友评论

          本文标题:DVWA Brute Force模块

          本文链接:https://www.haomeiwen.com/subject/emdfmftx.html