孫海波 馮偉 張鳳雨 劉志斌
【摘要】? ? 本文就工作中發(fā)現(xiàn)的一起驗(yàn)證碼前端可控漏洞,從事件經(jīng)過、驗(yàn)證過程、防護(hù)建議幾個(gè)方面,對(duì)該漏洞進(jìn)行介紹。使讀者能夠?qū)︱?yàn)證碼前端可控漏洞有一個(gè)比較清晰的認(rèn)識(shí),防止攻擊者利用該漏洞獲取用戶帳號(hào)信息,登錄網(wǎng)站,造成不可預(yù)想的損失。
【關(guān)鍵詞】? ? 網(wǎng)絡(luò)安全漏洞? ? 驗(yàn)證碼? ? Burp Suite? ? cookie
隨著互聯(lián)網(wǎng)技術(shù)的快速發(fā)展,犯罪分子利用網(wǎng)絡(luò)手段犯罪的行為已不鮮見。2018年8月14日,深圳龍崗警方宣布打掉一個(gè)新型盜刷銀行卡犯罪團(tuán)伙,抓獲10名嫌疑人,查繳偽基站等電子設(shè)備6套,帶破同類案件50余宗,涉案金額逾百萬元。據(jù)專家分析,嫌疑人通過“GSM劫持+短信嗅探”技術(shù)截獲受害人短信驗(yàn)證碼,從而完成盜刷等操作[1]。
手機(jī)短信驗(yàn)證碼在驗(yàn)證用戶身份時(shí)發(fā)揮的作用越來越大。注冊(cè)網(wǎng)站新賬號(hào),需要短信驗(yàn)證碼;通過手機(jī)銀行轉(zhuǎn)帳匯款,需要短信驗(yàn)證碼;忘記密碼又想登錄網(wǎng)站,需要短信驗(yàn)證碼等等。
網(wǎng)絡(luò)安全漏洞不容小覷。驗(yàn)證碼前端可控屬于高危風(fēng)險(xiǎn)網(wǎng)絡(luò)安全漏洞,攻擊者通過已注冊(cè)該網(wǎng)站的手機(jī)號(hào),再利用驗(yàn)證碼前端可控漏洞獲得手機(jī)驗(yàn)證碼,以該賬號(hào)進(jìn)行網(wǎng)站登陸,從而獲取已登錄手機(jī)賬戶的敏感信息,甚至可以拿到整個(gè)服務(wù)器中的敏感數(shù)據(jù)。這樣不僅僅對(duì)網(wǎng)站用戶的數(shù)據(jù)安全造成極大威脅,對(duì)整個(gè)網(wǎng)站的數(shù)據(jù)庫都造成嚴(yán)重威脅,后果不堪設(shè)想。
一、事件經(jīng)過
筆者一直從事對(duì)網(wǎng)站的網(wǎng)絡(luò)安全漏洞掃描工作,于2021年3月發(fā)現(xiàn)一起比較典型的驗(yàn)證碼前端可控漏洞,供讀者參考。漏洞詳細(xì)情況如下:漏洞名稱為驗(yàn)證碼前端可控漏洞;漏洞數(shù)量1個(gè);漏洞等級(jí)為高危;漏洞URL地址為 https://www.---.com/register/(“---”代表網(wǎng)站部分URL地址)。
驗(yàn)證碼前端可控漏洞,就是當(dāng)網(wǎng)站在驗(yàn)證用戶手機(jī)號(hào)碼時(shí),會(huì)有一個(gè)給手機(jī)號(hào)發(fā)送驗(yàn)證碼的指令,該漏洞可以不經(jīng)過手機(jī)直接獲取該驗(yàn)證碼。
二、驗(yàn)證過程
我們通過Web漏洞掃描工具,發(fā)現(xiàn)該網(wǎng)站下面的一個(gè)URL地址,存在驗(yàn)證碼前端可控漏洞:https://www.---.com/register/。下面我們對(duì)這個(gè)URL地址,進(jìn)行漏洞驗(yàn)證。
1.訪問主頁。我們首先打開網(wǎng)站主頁:https://www.---.com/,并在主頁中點(diǎn)開“注冊(cè)/登錄”頁面,如圖1所示。
2.創(chuàng)建帳號(hào)。在圖1的“注冊(cè)/登錄”頁面中點(diǎn)擊“創(chuàng)建您的帳號(hào)”選項(xiàng),進(jìn)入創(chuàng)建帳號(hào)界面,如圖2所示。
3.抓取驗(yàn)證碼請(qǐng)求包。在圖2中的創(chuàng)建帳號(hào)頁面中輸入需要驗(yàn)證的手機(jī)號(hào),點(diǎn)擊“獲取驗(yàn)證碼”按鈕。
此時(shí),我們使用Burp Suite工具抓取該請(qǐng)求的請(qǐng)求包數(shù)據(jù)。Burp Suite工具是一個(gè)用Java語言開發(fā)的高集成化滲透測(cè)試工具,集合了多種滲透測(cè)試組件,方便我們完成對(duì)web應(yīng)用的滲透測(cè)試,前提是在Java環(huán)境中運(yùn)行。在本次驗(yàn)證過程中,我們需要用到的是Burp Suite工具中的Repeater模塊。在Repeater模塊中,我們可以手動(dòng)修改請(qǐng)求參數(shù),并重新發(fā)送請(qǐng)求數(shù)據(jù),以幫助我們分析攔截到的請(qǐng)求信息。
通過Burp Suite工具抓取驗(yàn)證碼請(qǐng)求包,我們可以看到在這個(gè)請(qǐng)求包中包含被驗(yàn)證的手機(jī)號(hào),以及send_code參數(shù),即驗(yàn)證碼為“4307”,如圖3所示。
點(diǎn)擊“send”按鈕,發(fā)送該請(qǐng)求,手機(jī)會(huì)收到一個(gè)驗(yàn)證碼“4307”,如圖4所示,測(cè)試手機(jī)收到和在請(qǐng)求包中的驗(yàn)證碼一樣。
到這一步,就已經(jīng)存在問題了。即發(fā)送給手機(jī)的驗(yàn)證碼,我們可以利用Burp Suite工具抓取到。假如我們知道某一個(gè)已經(jīng)注冊(cè)該網(wǎng)站的手機(jī)號(hào),就可以在不通過手機(jī)接收驗(yàn)證碼的情況下獲取到驗(yàn)證碼,進(jìn)行登陸,進(jìn)而獲取該用戶的信息,可能會(huì)造成嚴(yán)重的信息泄漏。
4.篡改驗(yàn)證碼。我們也可以隨時(shí)對(duì)該網(wǎng)站的驗(yàn)證碼進(jìn)行篡改,在Repeater請(qǐng)求包中,比如我們將之前的驗(yàn)證碼“4307”修改為“1111”,如圖5所示。然后點(diǎn)擊“send”按鈕發(fā)送該請(qǐng)求,手機(jī)同樣可以接收到驗(yàn)證碼短信,如圖6所示,接收到的驗(yàn)證碼已經(jīng)變成了“1111”。
通過上面的驗(yàn)證過程,我們可以得出結(jié)論,這個(gè)網(wǎng)站存在驗(yàn)證碼前端可控的網(wǎng)絡(luò)安全漏洞,這種驗(yàn)證碼顯示在前端的方式是非常危險(xiǎn)的。
三、防護(hù)建議
杜絕驗(yàn)證碼繞過這類漏洞,最主要的原則就是一定要做好邏輯規(guī)劃,確認(rèn)邏輯過程沒有可被利用的地方,否則一旦出現(xiàn)這種邏輯類的先天缺陷,所有后續(xù)的限制防護(hù)只是徒勞。
這次我們發(fā)現(xiàn)的驗(yàn)證碼前端可控漏洞,只是驗(yàn)證碼繞過類漏洞的一種,其它種類的驗(yàn)證碼繞過漏洞還有許多,比如有的網(wǎng)站驗(yàn)證碼會(huì)在cookie信息中傳輸,有的驗(yàn)證碼會(huì)在響應(yīng)包中返回,這些問題都是在做短信驗(yàn)證邏輯規(guī)則時(shí)沒有考慮完善所導(dǎo)致的。
存在了驗(yàn)證碼繞過漏洞,網(wǎng)站就有可能受到各種類型的攻擊,如短信炸彈攻擊。因?yàn)榫W(wǎng)站未對(duì)短信驗(yàn)證碼數(shù)量以及間隔時(shí)間進(jìn)行限制,攻擊者通過滲透工具將短信驗(yàn)證碼無限制發(fā)送,造成網(wǎng)站不可訪問。我們要對(duì)驗(yàn)證碼繞過漏洞重視起來,避免由于一個(gè)點(diǎn)的疏忽導(dǎo)致整個(gè)網(wǎng)站系統(tǒng)的全面崩潰,主要從以下幾個(gè)方面進(jìn)行防護(hù)。
1.修改前端驗(yàn)證碼發(fā)送機(jī)制。驗(yàn)證碼不能在客戶端進(jìn)行驗(yàn)證,需要在網(wǎng)站服務(wù)端進(jìn)行驗(yàn)證。
2.限制短信發(fā)送時(shí)間間隔。比如限制短信在指定時(shí)間的發(fā)送數(shù)量,一分鐘只允許發(fā)送一次,一天總共發(fā)送多少次,防止網(wǎng)站被大量請(qǐng)求訪問。
3.對(duì)客戶訪問ip地址進(jìn)行限制。如果某一用戶ip對(duì)短信接口短時(shí)間內(nèi)進(jìn)行大量訪問,則對(duì)該用戶ip進(jìn)行封禁,或間隔24小時(shí)后再允許訪問等機(jī)制。
4.用戶登錄網(wǎng)站時(shí),添加圖片驗(yàn)證碼,防止用戶帳號(hào)被爆破。
四、結(jié)束語
這次發(fā)現(xiàn)的網(wǎng)站驗(yàn)證碼前端可控漏洞,通過漏洞驗(yàn)證,我們不需要手機(jī)就可以獲得手機(jī)驗(yàn)證碼,進(jìn)而登錄網(wǎng)站,獲取用戶及網(wǎng)站信息。如果被惡意攻擊者利用該漏洞,獲取用戶數(shù)據(jù),后果不堪設(shè)想。
黨的十八大以來,以習(xí)近平同志為核心的黨中央重視互聯(lián)網(wǎng)、發(fā)展互聯(lián)網(wǎng)、治理互聯(lián)網(wǎng),統(tǒng)籌協(xié)調(diào)涉及政治、經(jīng)濟(jì)、文化、社會(huì)、軍事等領(lǐng)域信息化和網(wǎng)絡(luò)安全重大問題,作出一系列重大決策、提出一系列重大舉措,推動(dòng)網(wǎng)信事業(yè)取得歷史性成就[2] 。網(wǎng)絡(luò)安全無小事,必須做到防患于未然。
參? 考? 文? 獻(xiàn)
[1] 人民網(wǎng). 深圳警方打掉一個(gè)新型盜刷銀行卡犯罪團(tuán)伙. 2018-08-16 . http://m.people.cn/n4/2018/0816/c3522-11460728.html;
[2] 中國習(xí)觀.網(wǎng)絡(luò)安全的重要性 習(xí)近平這些話擲地有聲. 2019-09-16. http://guoqing.china.com.cn/2019zgxg/2019- 09/16/content_75211149.html?f=pad&a=true。