短信轟炸漏洞一般分為兩種:
1.對一個手機號碼轟炸n次
2.對單個手機號碼做了接收驗證次數,但是可以對不同手機號發送短信無次數限制
在漏洞挖掘中遇到個有意思的案例,寫篇文章分享出來。
在接收短信處都有可能存在短信轟炸漏洞。輸入手機號然后接收短信:
首先我會查看響應接收和cookie中是否會返回正確的驗證碼,好吧~我在做夢,這種設計缺陷已經很少見了。
接着看加密完整的數據包post data的值:
當我輸入手機號碼接收短信,數據包中對phone進行了加密,一般在漏洞挖掘中遇到這種情況我一般扭頭就是換地方測試漏洞了,我覺得這里存在問題的可能性很小,但是這次我想嘗試下,下面是我的嘗試之旅:
這里對手機號進行加密,可能是前端加密也可能是后端加密,我嘗試接收多次驗證碼,看數據包中的phone是否會發生隨機性的變化:
我發現我的手機號phone始終是BYiJiNlLxDYiDJOUEoUQdQ%3D%3D,不管我接收多少次驗證碼,他都是唯一的加密值,並沒有產生隨機性變化。
現在我嘗試查看源碼,看看能不能尋找到phone的加密方式:
查看源碼發現他這里對phone進行了前端加密,首先是通過encrypt加密然后對加密的內容進行url編碼。前面的%3D的url解碼就是=
開始定位到encrypt函數:
控制台上輸出encrypt
單機點擊進去:
得到加密手機號碼的方法,以及解密手機號碼的方法。
現在我們知道了我們手機號的加密方式,下一步就是批量對每個手機號進行轟炸:
如何操作呢?
我們批量手機號碼的最后兩位:
我少生成點,生成20個:
代碼如下:
var k=10;
while(k<30){
var m=encrypt("138330781"+k);
k++;
console.log(m);
}
把這些生成的加密phone保存到文檔中:
爆破之:
簡單記錄下~