DVWA Brute Force模块

DVWA Brute Force模块_第1张图片
Brute Force

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

1 low level

使用工具破解

Brupsuite Intruder模块 暴力破解测试


DVWA Brute Force模块_第2张图片
爆破成功

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( '
' . mysql_error() . '
' ); if( $result && mysql_num_rows( $result ) == 1 ) { // Get users details $avatar = mysql_result( $result, 0, "avatar" ); // Login successful echo "

Welcome to the password protected area {$user}

"; echo ""; } else { // Login failed echo "

Username and/or password incorrect.
"; } mysql_close(); }

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

2 medium level

使用工具破解

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

DVWA Brute Force模块_第3张图片
爆破成功

2.1 源码分析:

    else { 
        // Login failed 
        sleep( 2 ); 
        echo "

Username and/or password incorrect.
"; }

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

3 high level

DVWA Brute Force模块_第4张图片
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参数会失效,从而服务器并不会返回响应内容。


DVWA Brute Force模块_第5张图片
Recursive grep

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


DVWA Brute Force模块_第6张图片
Redirections

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

DVWA Brute Force模块_第7张图片
爆破成功

5.Impossible level

暂时无解,全集终。

你可能感兴趣的:(DVWA Brute Force模块)