直播中
我們SINE安全在對(duì)網(wǎng)站,以及APP端進(jìn)行網(wǎng)站安全檢測(cè)的時(shí)候發(fā)現(xiàn)很多公司網(wǎng)站以及業(yè)務(wù)平臺(tái),APP存在著一些邏輯上的網(wǎng)站漏洞,有些簡(jiǎn)簡(jiǎn)單單的短信驗(yàn)證碼可能就會(huì)給整個(gè)網(wǎng)站帶來很大的經(jīng)濟(jì)損失,很簡(jiǎn)單的網(wǎng)站功能,比如用戶密碼找回上,也會(huì)存在繞過安全問題回答,或者繞過手機(jī)號(hào)碼,直接修改用戶的賬戶密碼。
在短信炸彈,以及用戶密碼找回的網(wǎng)站漏洞上,我們來跟大家分享一下如何利用以及如何防范該漏洞的攻擊。
我們來看下之前對(duì)客戶網(wǎng)站進(jìn)行的網(wǎng)站安全檢測(cè)的時(shí)候我們發(fā)現(xiàn)到的短信炸彈漏洞,由于客戶反映注冊(cè)網(wǎng)站會(huì)員的時(shí)候會(huì)收到好幾條重復(fù)的驗(yàn)證碼短信,甚至多次點(diǎn)擊提交也會(huì)導(dǎo)致收到好多條驗(yàn)證碼信息,隨即我們SINE安全對(duì)其進(jìn)行詳細(xì)的安全檢測(cè),果然發(fā)現(xiàn)了問題,對(duì)注冊(cè)會(huì)員的時(shí)候確實(shí)存在多次發(fā)送短信的情況,我們對(duì)提交的數(shù)據(jù),GET,POST方式進(jìn)行多次的安全測(cè)試,發(fā)現(xiàn)post數(shù)據(jù)的時(shí)候,在smg值后面隨意添加任何參數(shù),即可導(dǎo)致網(wǎng)站發(fā)送驗(yàn)證碼短信到用戶手機(jī)上,可以發(fā)送無數(shù)條短信,如果被攻擊者利用,那帶來的損失無法估量。
對(duì)于這次檢測(cè)出來的短信炸彈漏洞,首先分析代碼,從之前程序員寫的代碼里看出,在用戶登錄這個(gè)過程代碼里沒有進(jìn)行詳細(xì)的安全過濾,導(dǎo)致輸入用戶名密碼就可以發(fā)送驗(yàn)證碼,再一個(gè)就是程序員設(shè)計(jì)的過程中將測(cè)試的手機(jī)號(hào)碼都存放于數(shù)據(jù)庫(kù)里,導(dǎo)致很多正常的用戶收到測(cè)試時(shí)候的短信驗(yàn)證碼。再一個(gè)漏洞產(chǎn)生的原因,就是程序代碼里設(shè)計(jì)的初始化密碼為123456,導(dǎo)致在找回密碼重置密碼的時(shí)候就會(huì)進(jìn)行寫入數(shù)據(jù)庫(kù),攻擊者利用撞庫(kù)就可以很容易的猜測(cè)到用戶的密碼。
那么該如何防范短信炸彈漏洞呢?
從網(wǎng)站安全的角度來分析,以及網(wǎng)站安全部署層面上看,在短信平臺(tái)上可以做到防止短信無數(shù)發(fā)送,現(xiàn)在阿里云的短信平臺(tái),可以做到防止多次發(fā)送短信到用戶手機(jī),一個(gè)手機(jī)號(hào)一天只能接收5次短信的安全限制,再一個(gè)就是從程序代碼里進(jìn)行安全加固,對(duì)注冊(cè)的會(huì)員,進(jìn)行判斷,如果是一個(gè)IP,只能發(fā)送一條短信。用戶點(diǎn)擊獲取驗(yàn)證碼前輸入圖文驗(yàn)證碼,才能發(fā)送,間隔時(shí)間60秒才能發(fā)送一條短信。在整體的網(wǎng)站安全檢測(cè)中我們要提前告知客戶,我們?cè)谶M(jìn)行操作什么,網(wǎng)站漏洞掃描,網(wǎng)站漏洞利用,數(shù)據(jù)庫(kù)寫入刪除等比較重要的操作,都要事先跟客戶告知,提前對(duì)網(wǎng)站的數(shù)據(jù)進(jìn)行整體的安全備份,包括數(shù)據(jù)庫(kù)的備份,網(wǎng)站源代碼的備份。在滲透測(cè)試當(dāng)中我們要先進(jìn)行安全評(píng)估,整體的安全檢測(cè)會(huì)不會(huì)給用戶帶來影響以及損失,盡可能的不要產(chǎn)生影響客戶網(wǎng)站訪問,以及業(yè)務(wù)正常運(yùn)轉(zhuǎn)。