某次漏洞挖掘的過程中,碰到一個與以往挖掘的邏輯漏洞有些差別的漏洞,在此記錄一下。
漏洞點在忘記密碼處。如圖。

這里隨便找了一個同學的學號進行下一步的操作。
這里正常驗證的話,需要學號和身份證的信息,但是我們是沒有身份證信息的,但是這里可以簡單的抓包然后改包進行下一步。

響應包返回如下

看到這個響應包,相信有經驗的師傅們都會會心一笑。這里嘗試將響應包的failure改為success.

發現可以成功的帶我們來到重置密碼的界面。

這里還有一個攔路虎,手機驗證碼,且不說驗證碼能不能爆破的問題,僅當我點擊發送驗證的時候,頁面的響應如下

這里看來還驗證了上一步學號和身份證的驗證結果,發送驗證碼在服務端看來是非法的。
不死心的我,嘗試了將驗證碼置空,或者填了0000和9999之類的,最后干脆刪掉了驗證碼字段,當然也都沒有成功。
最后觀察了一下提交密碼重置后的響應包,如圖。

這里當時看到這個null的時候,突然就靈光一閃。
會不會服務端根本沒生成驗證碼(因為我點擊發送驗證碼的時候顯示了非法請求),從而導致驗證碼的值為null?
馬上嘗試了一下,發現了新世界!
請求包如下

再看看返回的響應包,成功了!
這和我以往碰到的單純改響應包下一步驗證的繞過稍稍有些不同,稍微根據響應包返回的信息,猜想了一下后端的邏輯,希望能給各位師傅一起分享一下漏洞挖掘的經驗(新手上路大佬輕噴)
HACK學習呀
HACK學習呀
商密君
E安全
HACK學習呀
CNCERT國家工程研究中心
安全圈
合天網安實驗室
系統安全運維
LemonSec
系統安全運維