# Authentication Lab7 這題登入功能使用了帳號鎖定(account locking)機制,但該機制中存在邏輯漏洞。請找出一個存在的使用者名稱,再暴力破解他的密碼,最後登入並進入使用者帳號頁面來完成這個實驗。。 一樣先進入網站後隨便輸入帳密去抓登入的請求封包,並丟到 Intruder 爆破。 ![image](https://hackmd.io/_uploads/rJP-xJvPeg.png) ![image](https://hackmd.io/_uploads/HySQg1DPle.png) ![image](https://hackmd.io/_uploads/Hy2cgJwPxe.png) - 第一個 payload:username - 第二個 payload:只是放空格(null payload),但設成「5 個」,意思是每個 username 嘗試 5 次。 這是要模擬「重複登入錯誤」的情境來觸發帳號鎖定,當帳號真的存在時,錯太多次會出現類似: - "You have made too many incorrect login attempts." - 而不存在的帳號不會出現這句話,最多只會說「帳密錯誤」或「帳號不存在」。 如果有一筆 response 的長度明顯不同,打開一看就會看到 "too many incorrect login attempts",表示這個帳號是存在的,所以記下這個帳號。 ![image](https://hackmd.io/_uploads/rkW--JDPxe.png) 再來是爆破這個使用者的密碼,先建立新的 Intruder 攻擊,改用 Sniper 攻擊。 - username 固定為剛剛發現的帳號。 - 在 password=§§ 上設 payload。 - 把提供的 password list 加進去。 - 加一個 Grep Extract 規則來看錯誤訊息變化(有些密碼會說「錯誤次數過多」,有些說「帳密錯誤」,只有正確那筆不會出錯訊息)。 ![image](https://hackmd.io/_uploads/B1QLG1Pwgx.png) 最後得出帳密為:`ag:master`。 ![image](https://hackmd.io/_uploads/BJBpMkvwll.png) ---