手機和網絡早已密不可分,通過網絡,可以直接發送信息到手機上,只是現在已經沒有
免費發送短信的網站,如果想通過網站發送短信到手機上,必須先註冊用戶,確認後纔可以
發送信息,只是那樣以來,呵呵,發一條信息就是一毛錢,呵呵,我可沒那麼多錢。呵呵
是不是很納悶啊,呵呵
好了,我來仔細說說。
首先分析網上可以發送手機短信的網站結構。特別是他們如何確認用戶已經註冊成功呢。
一般說來有如下步驟:
1、用戶認可網站提出的服務協議
2、用戶進入註冊頁面,填寫自己的手機號碼
3、由服務器接受用戶提交的手機號碼,併發送確認密碼到用戶填寫的手機上
4、用戶以手機號碼以及手機獲得的密碼登錄到網站上使用網站提供的收費服務
以新浪爲例:
登錄新浪短信的註冊頁面,在手機號碼裏填寫號碼,然後點擊註冊
這時候,服務器收到用戶發送的請求,就將用戶註冊密碼以短信的方式發送給該手機號碼
到這裏爲止,明眼人應該可以看出點東西了。
呵呵!
不錯,如果我們可以順利的僞造一段信息併發送給服務器,通過服務器發送註冊密碼
給相應的手機號碼,如果我們發送2次,手機應該收到2次信息,如果我們發送10次,手機
自然應該收到10次,如果我們發送100次、、、
呵呵
驗證想法
搬出嗅探器,當然,我比較喜歡IRIS,下面是截獲的數據包,Decode後的顯示
單擊圖片放大
其中有兩行我們需要注意:
一個是
POST /cgi-bin/sms/register.cgi HTTP/1.1
一個是
mobile=13801590786&lang=1&%D7%A2%B2%E1.x=29&%D7%A2%B2%E1.y=6HTTP/1.1
200 OK
(呵呵,當然,這個不是我的手機)
分析一下:
/cgi-bin/sms/register.cgi是用來註冊的程序
mobile=手機號碼
lang=1表示手機是中文機,lang=0表示手機是英文機(呵呵,看看html代碼裏面就有)
%D7%A2%B2%E1是unicode編碼,意思是“註冊”
嘗試實現:
第一次直接用GET嘗試,不用POST,只填寫mobile參數
回車後返回一堆亂七八糟的東東
呵呵,我就不貼了,基本意思是不成功
再嘗試!
連到服務器上
絛肎ET,不用POST,但是在mobile參數後面添加lang語言參數
呵呵,成功了吧
呵呵,看看title裏面的就知道已經成功了
呵呵
好了,下面就是用程序實現了
呵呵,我不是程序員,所以我不貼代碼出來了
不過目前就寫出的攻擊程序來看,呵呵,基本每家網站的服務都是可以利用的
而且,效果還算不錯。
需要注意的是,當多次提交相同號碼的時候,速度不能快,另外,因爲這種攻擊方法是有風險的
呵呵,因爲服務器會有紀錄嘛,所以,在寫的時候,注意添加一個proxy就可以了。
好了,就先交流這麼多