# Authentication Lab8 這題二階段驗證(2FA)邏輯錯誤,題目名稱就叫 "2FA broken logic",屬於認證機制設計錯誤的變種,可以用自己的帳號發起請求,卻偷偷指定「Carlos」來產生驗證碼,接著爆破那組碼進行登入。 一樣先進入網站登入帳密去抓 F2A 的請求封包。    接著登出帳號,並去剛剛攔截的封包,把 wiener 改成另一位使用者,這樣就會強制後端為 carlos 產生一組 2FA 驗證碼(就像偷幫他按了登入一樣)。  回到` /login`,再次用 wiener 登入,然後進入 `/login2`,輸入一組錯誤的驗證碼讓流程卡住。  這是我們將登入的封包拿去爆破 F2A 的數字。    發現有一個 302 狀態碼的結果,去複製他的 URL 並前往。    :::info ### 為什麼這樣會中? 因為這個系統沒有用 session 綁定驗證使用者,卻讓前端可以自定 `verify=carlos`,你就可以代替他產生並猜測驗證碼。 這是邏輯設計錯誤,尤其常見於把 2FA 當作二段表單處理、但沒驗證誰在使用的情況下。 ::: ---
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up