DVWA比较暴力破解

Brute Force


Impossible Brute Force Source

<?php 

if( isset( $_POST'Login' ] ) ) { 
    
// Check Anti-CSRF token 
    
checkToken$_REQUEST'user_token' ], $_SESSION'session_token' ], 'index.php' ); 

    
// Sanitise username input 
    
$user $_POST'username' ]; 
    
$user stripslashes$user ); 
    
$user mysql_real_escape_string$user ); 

    
// Sanitise password input 
    
$pass $_POST'password' ]; 
    
$pass stripslashes$pass ); 
    
$pass mysql_real_escape_string$pass ); 
    
$pass md5$pass ); 

    
// Default values 
    
$total_failed_login 3
    
$lockout_time       15
    
$account_locked     false

    
// Check the database (Check user information) 
    
$data $db->prepare'SELECT failed_login, last_login FROM users WHERE user = (:user) LIMIT 1;' ); 
    
$data->bindParam':user'$userPDO::PARAM_STR ); 
    
$data->execute(); 
    
$row $data->fetch(); 

    
// Check to see if the user has been locked out. 
    
if( ( $data->rowCount() == ) && ( $row'failed_login' ] >= $total_failed_login ) )  { 
        
// User locked out.  Note, using this method would allow for user enumeration! 
        //echo "<pre><br />This account has been locked due to too many incorrect logins.</pre>"; 

        // Calculate when the user would be allowed to login again 
        
$last_login $row'last_login' ]; 
        
$last_login strtotime$last_login ); 
        
$timeout    strtotime"{$last_login} +{$lockout_time} minutes" ); 
        
$timenow    strtotime"now" ); 

        
// Check to see if enough time has passed, if it hasn't locked the account 
        
if( $timenow $timeout 
            
$account_locked true
    } 

    
// Check the database (if username matches the password) 
    
$data $db->prepare'SELECT * FROM users WHERE user = (:user) AND password = (:password) LIMIT 1;' ); 
    
$data->bindParam':user'$userPDO::PARAM_STR); 
    
$data->bindParam':password'$passPDO::PARAM_STR ); 
    
$data->execute(); 
    
$row $data->fetch(); 

    
// If its a valid login... 
    
if( ( $data->rowCount() == ) && ( $account_locked == false ) ) { 
        
// Get users details 
        
$avatar       $row'avatar' ]; 
        
$failed_login $row'failed_login' ]; 
        
$last_login   $row'last_login' ]; 

        
// Login successful 
        
echo "<p>Welcome to the password protected area <em>{$user}</em></p>"
        echo 
"<img src=\"{$avatar}\" />"

        
// Had the account been locked out since last login? 
        
if( $failed_login >= $total_failed_login ) { 
            echo 
"<p><em>Warning</em>: Someone might of been brute forcing your account.</p>"
            echo 
"<p>Number of login attempts: <em>{$failed_login}</em>.<br />Last login attempt was at: <em>${last_login}</em>.</p>"
        } 

        
// Reset bad login count 
        
$data $db->prepare'UPDATE users SET failed_login = "0" WHERE user = (:user) LIMIT 1;' ); 
        
$data->bindParam':user'$userPDO::PARAM_STR ); 
        
$data->execute(); 
    } 
    else { 
        
// Login failed 
        
sleeprand2) ); 

        
// Give the user some feedback 
        
echo "<pre><br />Username and/or password incorrect.<br /><br/>Alternative, the account has been locked because of too many failed logins.<br />If this is the case, <em>please try again in {$lockout_time} minutes</em>.</pre>"

        
// Update bad login count 
        
$data $db->prepare'UPDATE users SET failed_login = (failed_login + 1) WHERE user = (:user) LIMIT 1;' );
        
$data->bindParam':user'$userPDO::PARAM_STR ); 
        
$data->execute(); 
    } 

    
// Set the last login time 
    
$data $db->prepare'UPDATE users SET last_login = now() WHERE user = (:user) LIMIT 1;' ); 
    
$data->bindParam':user'$userPDO::PARAM_STR ); 
    
$data->execute(); 


// Generate Anti-CSRF token 
generateSessionToken(); 

?> 

High Brute Force Source

<?php 

if( isset( $_GET'Login' ] ) ) { 
    
// Check Anti-CSRF token 
    
checkToken$_REQUEST'user_token' ], $_SESSION'session_token' ], 'index.php' );

    
// Sanitise username input 
    
$user $_GET'username' ]; 
    
$user stripslashes$user ); 
    
$user mysql_real_escape_string$user ); 

    
// Sanitise password input 
    
$pass $_GET'password' ]; 
    
$pass stripslashes$pass ); 
    
$pass mysql_real_escape_string$pass ); 
    
$pass md5$pass ); 

    
// Check 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 ) == ) { 
        
// Get users details 
        
$avatar mysql_result$result0"avatar" ); 

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

    
mysql_close(); 


// Generate Anti-CSRF token 
generateSessionToken(); 

?> 

Medium Brute Force Source

<?php 

if( isset( $_GET'Login' ] ) ) { 
    
// Sanitise username input 
    
$user $_GET'username' ]; 
    
$user mysql_real_escape_string$user ); 

    
// Sanitise password input 
    
$pass $_GET'password' ]; 
    
$pass mysql_real_escape_string$pass ); 
    
$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 ) == ) { 
        
// Get users details 
        
$avatar mysql_result$result0"avatar" ); 

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

    
mysql_close(); 


?> 

Low Brute Force Source

<?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 mysql_query$query ) or die( '<pre>' mysql_error() . '</pre>' ); 

    if( 
$result && mysql_num_rows$result ) == ) { 
        
// Get users details 
        
$avatar mysql_result$result0"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(); 


?> 


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值