邏輯漏洞之密碼找回總結
阿新 • • 發佈:2018-12-03
邏輯漏洞之密碼找回總結
0x00 腦圖
0x01 使用者憑證暴力破解
- 驗證碼的位數:4 or 6,有效時間:1min - 15min
- 驗證碼爆破防護繞過
- 純數字字典生成指令碼
import itertools
words = "0123456789"
r = itertools.product(words, repeat=n)
dic = open("", "a")
for i in r:
dic.write("".join(i))
dic.write("".join("\n"))
dic.close()
0x02 返回憑證
- url返回驗證碼及token
- 密碼找回憑證在頁面中
- 返回簡訊驗證碼
某app挖洞記錄:傳送Request
,驗證碼回顯在Response
0x03 郵箱弱token
- 時間戳的md5
- 使用者名稱
- 伺服器時間
0x04 使用者憑證有效性
- 簡訊驗證碼
獲取驗證碼,嘗試修改手機號;修改返回包中的手機號為自己的手機號,嘗試獲取驗證碼 - 郵箱token
- 重置密碼token
0x05 重新繫結
- 手機繫結
- 郵箱繫結
0x06 伺服器驗證
- 最終提交步驟
- 伺服器驗證可控內容
- 伺服器驗證邏輯是否為空
某app挖洞記錄:未校驗驗證碼,憑據,使用者號碼的一致性,導致任意使用者密碼重置
0x07 使用者身份驗證
- 賬號與手機號的繫結
- 賬號與郵箱賬號的繫結
0x08 找回步驟
某網站挖洞記錄:找回密碼到了第二步,直接修改mobile引數,可跳過第一步簡訊驗證步驟
0x09 本地驗證
- 在本地驗證伺服器的返回資訊,確定是否執行重置密碼,但是其返回資訊是可控的內容,或者可以得到的內容
- 傳送簡訊等驗證資訊的動作在本地進行,可以通過修改返回包進行控制
Intercept Server Responses
新增規則如下:
0x10 注入
0x11 token生成可控
觀察重置密碼步驟資料包中字串,是否和驗證身份步驟中的字串相同。相同-->嘗試繞過驗證步驟,不同-->嘗試token可控。
0x12 註冊覆蓋
註冊重複的使用者名稱
0x13 session覆蓋
找回密碼到了郵箱驗證這一步驟,開啟郵箱,不要在郵箱點選重置密碼的連結,複製連結在同一瀏覽器開啟