|
|
|
缺陷位置:密碼重置鏈接中,參數(shù)newValidCode設(shè)置過于簡單(6位純數(shù)字),且發(fā)送請求時,無次數(shù)限制,可以通過爆破重置任意用戶密碼。
測試過程
1 老規(guī)矩,點(diǎn)擊忘記密碼。
2 可以看到,讓填郵箱地址,這個也就是可以用來登錄用的郵箱。
那就果斷填上小號的郵箱唄。
3 填好郵箱后,點(diǎn)擊下一步,郵箱中會收到如下圖所示的,一個重置密碼的鏈接。(看不見圖上的字就點(diǎn)擊看大圖吧)
4 用小號多次測試后,可以得到圖3中的分析,主要就是那個newValidCode的字符串在驗(yàn)證。
訪問鏈接,可以看到可以直接修改密碼了。
5 所以問題變的很簡單了,只要爆破newValidCode就可以了。
6 打開burps,隨便輸入新密碼,抓包。這里注意地址欄的地址將newValidCode寫成任意的6位數(shù)字,因?yàn)槲覀冎刂妹艽a的時候是不清楚這個數(shù)據(jù)是多少的。
mailAuthenId這個可以自己用自己的帳號重置自己密碼去查看,然后重置別人的時候,將之前自己得到的數(shù)字加1就可以了。
(ps:無論newValidCode參數(shù)是什么,訪問那個鏈接都會正常顯示修改密碼的頁面,不過newValidCode不正確的話,不會修改密碼成功而已)
控制變量,只留下圖中所示的待爆破的變量即可。
7 然后爆破請求,可以看到這里出現(xiàn)了明顯的變動,說明這里就是正確的密碼。
8 用變動位置的數(shù)據(jù)去測試修改密碼的地址會出現(xiàn)如下圖。
這個圖就說明密碼已經(jīng)修改成功了,修改密碼的鏈接失效了而已。
去用爆破出的密碼去測試登錄,成功登錄。
圖7
由于newValidCode參數(shù)的驗(yàn)證字符只有6位純數(shù)字,所以多線程去爆破,很快就可以重置密碼了。。。
修補(bǔ):
1 newValidCode設(shè)置的復(fù)雜點(diǎn),最好是26個字母(區(qū)分大小寫)和10個數(shù)字的組合。
2 提交修改密碼的請求限制下,可以在提交請求的時候加上驗(yàn)證碼,或者限制每天重置錯誤10次當(dāng)天就不得在重置密碼。
3 理財(cái)?shù)木W(wǎng)站,應(yīng)該比較大方,給發(fā)個禮物不是啥問題吧。這樣漏洞就會越來越少的,嘿嘿~~
|
|
發(fā)表留言請先登錄!
|