bWAPP Broken Auth. & Session Mgmt

0x01、Broken Auth - CAPTCHA Bypassing

Low

驗證碼繞過,本題驗證碼沒有時間限制,所以提交一次驗證碼後,可以暴力破解用戶名和密碼了

Medium&High

方法如上,依然可以暴力破解。

所以及時銷燬驗證碼的有效性是很必要的。



 

0x02、Broken Auth. - Forgotten Function

Low

在源碼中使用了mysqli_real_escape_string()函數,進行了防sql注入驗證;

且驗證了輸入是否爲email格式:

只能通過暴力破解郵箱了,掛上你的字典試試看吧
郵箱正確了,會提示你的安全問題,也不會直接顯示密碼。

Medium

通過源碼得知,在中級難度時,安全問題會發送郵箱。

也就是我們平時經常遇到的:  忘記密碼需要更改時,  要通過發送修改密碼的郵件到綁定的郵箱來修改。

High

會將sha1的隨機哈希值發送到郵箱,通過安全問題找回頁面重置安全問題


 

 

 

0x03、Broken Auth. - Insecure Login Forms

Low

查看網頁源代碼, 發現敏感(用戶)信息泄露:

Medium

查看網頁源代碼,  同樣發現了用戶名的泄露;  通過發現unlock按鈕的事件:

繼續在網頁源代碼中找到 unlock_secret()函數:

將關鍵解密代碼複製到瀏覽器控制檯執行,  得到密碼:

High

沒什麼解法了,只剩下 bee/bug 了:

 

 

 

0x04、Broken Auth. - Logout Management

這個通過源碼可以發現,Low/Medium/High三個級別的區別:

switch($_COOKIE["security_level"])
{ 
    case "0" :       
        // Do nothing
        break;  
    case "1" :               
        // Destroys the session        
        session_destroy();        
        break;  
    case "2" :                         
        // Unsets all of the session variables
        $_SESSION = array();
        // Destroys the session    
        session_destroy();    
        break;
    default :
        // Do nothing
        break;
}

Low

退出登錄時,session沒有銷燬,可以賬號依然有效:

Medium

退出登錄時,session已經銷燬,需重新登錄

High

退出登錄時,session先被清空,然後銷燬,需要重新登錄

 

 

 

0x05、Broken Auth. - Password Attacks

Low

用burpsuite或者hydra爆破即可

Medium

增加了一個隨機salt值來驗證,  類似與token的作用。

這裏用burpsuite演示:

1. 先選取爆破參數 password 和salt:

2. 從相應的頁面中獲取salt值:

3. 將redirection設爲always:

4. 添加密碼字典:

5. 將salt設置好,  並且給第一次訪問的salt賦值 (不然開始就被不合法驗證了, 無法開始):

6. 由於設置了sale,  是一對一的驗證, 只有獲取上一個請求返回的salt值才能,做下一次請求, 因此只能單線程, 在option中設置線程爲1:

7. start attack,  長度不同的那個即爲正確密碼:

High

加了圖片驗證碼, 也是我們現實中經常遇到的:

 

 

 

0x06、Broken Auth. - Weak Passwords

弱口令,沒啥說的,掛字典吧。

Low

test / test

Medium

test / test123

High

test / Test123

 

 

 

0x07、Session Mgmt. - Administrative Portals

Low

admin參數控制頁面,  直接修改即可:

Medium

同樣,  只不過控制的admin參數在cookie中: 

High

需要修改session中的admin值爲1, 或者直接用管理員賬號bee/bug登錄也可以。

 

 

0x08、Session Mgmt. - Cookies (HTTPOnly)

Low

觀察源碼,  Cookies中httponly字段設置爲false:

  • setcookie(name,value,expire,path,domain,secure)
參數 描述
name 必需。規定 cookie 的名稱。
value 必需。規定 cookie 的值。
expire 可選。規定 cookie 的有效期。
path 可選。規定 cookie 的服務器路徑。
domain 可選。規定 cookie 的域名。
secure 可選。規定是否通過安全的 HTTPS 連接來傳輸 cookie。

點擊 Click Here ,本地JS腳本可以直接訪問到top_security這個變量值:

Medium

Cookies中httponly字段設置爲true:


點擊Click Here,本地JS腳本無法訪問top_security變量值了:

High

Cookies中httponly字段設置爲ture,同時縮短了cookies的生存時間


與中級難度的區別在於,調整了Cookie的生存時間,僅有300秒(5分鐘):

 

 

 

0x09、Session Mgmt. - Session ID in URL

三個等級的難度都一樣,  Session ID 暴露在URL中:


Session ID 永遠不要暴露在URL中。

 

 

 

0x0A、Session Mgmt. - Strong Sessions

本題主要是通過觀察top_security_nossltop_security_ssl的情況,
來了解Session的安全存儲

Low

沒有任何安全可言

Medium

可以觀察到top_security_nossl的值是使用了HASH處理

High

在非SSL情況下,看不到top_security_ssl的值
改用HTTPS後,可以觀察到top_security_nossl


參考鏈接:https://www.jianshu.com/p/2bae182bb407

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章