一個有意思的漏洞組合場景

實現一個業務功能,也有着很多不同的實現方式,當業務邏輯考慮不嚴謹的時候,同一個業務功能模塊存在着很多漏洞場景,如密碼重置漏洞、商城支付漏洞

本文分享一個有意思的案例,通過漏洞組合實現任意密碼重置,同時,也是驗證碼驗證一次有效的利用場景。

1、在這個密碼重置模塊裏面,只需輸入手機號和手機驗證碼即可進入修改密碼界面,看到這個界面,很多人會嘗試暴力破解,但會發現驗證碼僅能使用一次,爆破成功,但輸入的時候已經失效了,怎麼辦?

640?wx_fmt=png

2、 我們填寫用戶的手機號碼,獲取驗證碼,隨意輸入幾個驗證碼,抓包:

640?wx_fmt=png

我們注意到返回的是失敗,如果返回成功,是什麼樣子呢?通過測試,如果驗證碼輸入正確,返回{"data":"success"}。

3、修改返回包爲{"data":"success"},即可繞過驗證碼驗證,進入修改密碼界面。

640?wx_fmt=png

4、在這裏,輸入兩次新密碼,提示密碼修改失敗。查看HTTP交互過程,Token值不變。猜想:如何把Token變成有效的,這樣才能修改成功。

640?wx_fmt=png

{"Token":"eyJhbGciOiJIUzI1NiJ9.eyJpczMiOiJmYW5ydWFuIiwiaWF0IjoxNTYyOTI0MzUxLCJzdWIiOiIxaDA0MDI5OSIsIgp0aSI6Imp3dCJ9.Mo0KuEZwOuT6pPsJCydgKD-qVjIieaVAWDX7tchk4NY","newPassword":" IGFiY2RlMTIz"}

5、這裏,我們利用系統的另一個缺陷,因對手機驗證次數沒有限制,遍歷000000-999999區間,暴力破解手機驗證碼,成功後返回success

640?wx_fmt=png

 6、此時,輸入用戶新密碼,保存後修改成功。

640?wx_fmt=png

 

簡單來說,這個漏洞場景是這樣:

A、前端驗證繞過可以直接進入密碼修改界面,但Token無效,無法成功修改密碼。

B、手機驗證碼可以暴力猜解,但驗證碼一次失效,爆破出來輸入驗證碼無效

這個時候,通過A+B的漏洞組合,利用前端驗證繞過進入修改密碼界面,暴破驗證碼使Token生效,就可以實現任意密碼重置漏洞 。

漏洞往往就隱藏在一些細節裏面,在滲透測試中,去分析請求中的每個參數,並注意檢查頁面返回的源代碼。比如,當參數拼接到SQL中執行,就存在SQL注入,當參數直接輸出到前端,就存在XSS跨站腳本。

似乎很難再找到人去分享,發現一種新的漏洞利用場景的喜悅。

----致那些曾經一起玩滲透的朋友。

640?wx_fmt=jpeg

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