當前位置:名人名言大全網 - 短信平臺 - 任意用戶密碼重置的10種常見姿勢

任意用戶密碼重置的10種常見姿勢

造成原因:找回密碼的時候獲取的驗證碼缺少時間限制,只判斷了是否正確,未判斷驗證碼是否過期,也就是說驗證碼的時效性很長(在很長壹段時間裏不會改變)

測試方法:通過枚舉找到真正的驗證碼輸入驗證碼完成驗證

案例:以下案例在點擊獲取手機驗證碼後,Response包裏直接抓取到了手機驗證碼。

這種驗證碼不失效而且驗證碼是4位數的情況下, 直接爆破 看包的返回長度或者內容來找到正確的驗證碼。這裏返回包是0,代表正確

總結

這種驗證碼不失效的情況現在已經是非常少見的了,而且驗證碼的位數也很少有簡單的4位驗證碼了。現在絕大多數是這樣的:6位數的驗證碼而且15分鐘內有效,這樣子的話爆破的可能性就非常的低了。

在Response(返回包)裏直接拿到驗證碼

案例:

另壹個案例:

此案例的用戶名是加密的。

其實大部分這種情況我們都不需要知道加密算法,比如這裏例子,得到liuyy的加密後的值是80e688602c4b11e66320c421e3b71ef2,那麽我們就可以直接利用這個keyCode參數了。

步驟是壹樣的,輸入我們的用戶名和收到的驗證碼,然後把我們的keycode替換為liuyy的那個keycode,這樣就可以重置liuyy的密碼了。(漏洞原因還是是判斷了驗證碼是否正確,而沒有判斷該驗證碼是否跟該用戶匹配。)

總結

這種情況沒有遇到過,學習了,以後在找回密碼的時候會這麽測試的。現在看來對於白帽子來說有 2 個手機號是多麽的方便了。

案例二中如何獲取到其他用戶的keyCode呢?這裏的話正常走壹遍找回密碼的流程,然後抓包就會在數據包中找到加密後的keyCode了,這樣就可以重置任意用戶的密碼了。

案例:

點擊找回密碼,首先我們輸入zhangwei(我們不知道zhangwei的手機號碼),然後點擊獲取驗證碼,這個時候把手機號改為我們自己的號碼,輸入我們自己的號碼和驗證碼,成功跳到重置密碼的頁面,密碼重置成功。

案例:

這裏我們所做的就是把0修改為1,可以借工具修改返回包,我們把0改為1,Forward防包,然後查看頁面,成功跳轉到修改密碼的頁面,輸入新密碼即可修改用戶13888888888的密碼

總結

who_jeff曾經分享給過這樣壹個類似的案例,他是在壹個安卓app上進行抓包測試的,當時就直接修改返回包 來欺騙本地的app客戶端的,成功重置任意用戶的密碼。

案例:

總結

這個漏洞不用按照正常的流程來走,這裏的話直接補齊設置新密碼的鏈接,然後利用這裏鏈接可以直接重置任意用戶的密碼。

案例:

總結

這裏的話關鍵是在最後壹步重置密碼的時候替換目標手機號,這種其實也是比較暴力的,拿到這個鏈接的話 可以無條件批量重置任意用戶的密碼,這裏面利用burp可以批量枚舉手機號碼的mphone參數。

案例:

總結

這種也比較暴力流氓,可以通過枚舉id的值 ,來大批量重置任意用戶密碼的漏洞,因為不需要用戶名了,只需要知道id值即可,危害比較大。

案例:

總結

關鍵點: cookie 可指定用戶獲取, 嘗試用他人賬號來找回密碼的時候,抓取數據包,可以從中提取出 cookie 值,然後就可以利用這個 cookie 值,就可以重置指定用戶的密碼了。

案例:

總結

最後壹種要稍微復雜壹點,得去找到隱藏參數:loginId 然後再修改數據包,以後挖洞的時候,多留意這些。