短信驗證碼接口非常容易遭受互聯網惡意攻擊——“短信轟炸”,該攻擊通過循環利用不同業務中的無需注冊即可向任意手機號發送短信驗證碼的正常業務需求(如用戶注冊、密碼修改等),向多個手機號碼同時連續發送大量的驗證短信,對用戶造成困擾。下面對短信轟炸的原理進行具體分析,進而制定相應的安全防護方案。
短信轟炸原理
短信轟炸一般基於 WEB 方式,其由兩個模塊組成,包括:一個前端 Web 網頁,提供輸入被攻擊者手機號碼的輸入窗口;一個后台攻擊頁面(如 PHP),利用從各個網站上找到的短信驗證碼 URL 和前端輸入的被攻擊者手機號碼,發送 HTTP 請求,每次請求給用戶發送一條短信驗證碼。利用這兩個模塊實施“短信轟炸”攻擊,原理具體分析如下:
- 惡意攻擊者在前端頁面(下圖所示 )中輸入被攻擊者的手機號;
- 短信轟炸后台服務器,將該手機號與互聯網收集的可不需要經過認證即可發送短信的 URL 進行組合,形成可發送驗證碼短信的 URL 請求;
- 通過后台請求頁面,偽造用戶的請求發給不同的業務服務器;
- 業務服務器收到該請求后,發送短信驗證碼到被攻擊用戶的手機上。
這個過程如下圖 所示。
短信轟炸實例分析
用戶在某短信轟炸軟件上輸入被攻擊手機號、攻擊的次數后,對被攻擊的手機號進行攻擊的源碼如下圖所示。
該攻擊頁面中主要采用 img src="’http://…..’" / 來調用業務服務器短信發送的接口。如上圖紅框中內容所示:
- 在“短信轟炸”源代碼中,利用img標簽的 src 屬性定義了可以請求發送驗證碼短信的 URL(如 gd.12530.com/….);
- 在其中的 phonenumber 字段中嵌入被攻擊的手機號(如 13811111111)后,即可形成攻擊 URL;
- 頁面運行后,將其以 HTTP GET/POST 的方法提交給業務服務器;
- 業務服務器發送短信驗證碼到被攻擊者的手機上,從而完成了短信轟炸。
了解了短信轟炸的原理后,下一篇將為大家提供相應的安全防護方案。
原文閱讀:《短信驗證碼安全防護方案(一)短信轟炸原理》___漫道短信平台