短信平臺(tái)相關(guān)常見(jiàn)問(wèn)題整理
在近期的滲透測(cè)試項(xiàng)目中,在短信平臺(tái)相關(guān)功能都出現(xiàn)了一些問(wèn)題,現(xiàn)對(duì)滲透過(guò)程中發(fā)現(xiàn),及wooyun上出現(xiàn)的相關(guān)短信平臺(tái)的幾類問(wèn)題做個(gè)整理。
一、短信發(fā)送無(wú)頻率限制
通過(guò)wooyun上搜索可見(jiàn),該類漏洞是最為常見(jiàn)的。
漏洞成因: 對(duì)發(fā)送信息功能調(diào)用未做任何限制
漏洞危害:
1、可針對(duì)某用戶短時(shí)間內(nèi)發(fā)送大量垃圾短信,造成短信轟炸攻擊;
2、對(duì)于企業(yè),每發(fā)一條短信,都是需要向運(yùn)營(yíng)商交付一些費(fèi)用,盡管比個(gè)人用戶費(fèi)用低,但是一旦被惡意利用大量發(fā)送后,造成較大的直接經(jīng)濟(jì)損失。
漏洞修補(bǔ):
1、限定同一手機(jī)號(hào)在一時(shí)間段內(nèi)發(fā)送次數(shù),如每分鐘發(fā)送1次,具體落實(shí)需結(jié)合用戶體驗(yàn)綜合考慮;
2、使用強(qiáng)壯的驗(yàn)證碼機(jī)制。
補(bǔ)充:曾在測(cè)試中發(fā)現(xiàn)某客戶的驗(yàn)證碼有效期為2分鐘,即2分鐘內(nèi)無(wú)需修改驗(yàn)證碼直接成功回放請(qǐng)求包,同樣可造成短信炸彈工具。因此,務(wù)必保證驗(yàn)證碼的強(qiáng)壯型,并采用一次一用機(jī)制。
二、短信發(fā)送內(nèi)容來(lái)自客戶端
這類漏洞一般不直觀,直接由用戶輸入來(lái)定義短信內(nèi)容的問(wèn)題確實(shí)沒(méi)遇到過(guò),這里的漏洞是把短信內(nèi)容放在的POST表單中,從頁(yè)面上無(wú)法發(fā)現(xiàn),需要抓包分析才能看到。
相關(guān)漏洞:
(知道這漏洞是哪家的同學(xué)也請(qǐng)噓,咱不討論它是誰(shuí)的,另漏洞已經(jīng)修補(bǔ)了)
某系統(tǒng)可以在WEB頁(yè)面上選擇手機(jī)品牌和型號(hào),填入手機(jī)號(hào)碼可發(fā)送下載地址至手機(jī),具體操作界面如下圖:
抓包查看該P(yáng)OST表單的內(nèi)容
正常情況下,用戶收到的短信即為客戶端提交的內(nèi)容:“var1下載:var2”,var1和var2分別為手機(jī)品牌和手機(jī)型號(hào)。
例如“NOKIA N97下載:wap.abc.com.cn/abc.sisx”。
由于短信內(nèi)容為客戶端定義的,即修改var1=NULL,var2=“恭喜您中獎(jiǎng),請(qǐng)登陸XXX領(lǐng)取”。此時(shí)目標(biāo)手機(jī)收到短信為:“下載:恭喜您中獎(jiǎng),請(qǐng)登陸XXX領(lǐng)取”。最終造成釣魚(yú)攻擊。
漏洞原因:直接原因是客戶端可控制短信內(nèi)容。但更深層次去追究,實(shí)際上是開(kāi)發(fā)人員追求性能和效率,把重要的操作分發(fā)給客戶端去做,而忽視其中安全問(wèn)題導(dǎo)致的,這也是開(kāi)發(fā)人員考慮問(wèn)題重心偏移和安全從業(yè)者不同的體現(xiàn)。類似,為追求性能而導(dǎo)致有意思的漏洞:sohu郵箱任意用戶密碼重置。
漏洞危害:該類漏洞一般被用戶釣魚(yú)欺詐,直接受害者為最終用戶,也使得企業(yè)方遭受名譽(yù)損失。
漏洞修補(bǔ):短信發(fā)送文字內(nèi)容應(yīng)由服務(wù)器來(lái)定義,客戶端應(yīng)觸碰不到。可以制定為鍵-值對(duì),客戶端只能選擇鍵,然后在服務(wù)端匹配到鍵相應(yīng)的值,再把值內(nèi)容發(fā)送給用戶手機(jī)。
三、手機(jī)驗(yàn)證過(guò)程中pin碼可爆破
這類問(wèn)題常出現(xiàn)在“密碼找回”、“綁定手機(jī)”等功能處。正常工作流程一般為在頁(yè)面提交手機(jī)號(hào),然后短信平臺(tái)會(huì)發(fā)送一個(gè)pin碼給手機(jī),再將pin碼提交回給服務(wù)器,完成身份認(rèn)證或綁定。
相關(guān)漏洞:微信任意用戶密碼修改漏洞
該漏洞在爆破pin碼階段相當(dāng)精彩,先贊一個(gè)。
only_guest大牛說(shuō)了:
因此,這類漏洞成因:
1、pin碼太弱,短位的純數(shù)字組合,極易爆破;
2、高頻由同一源發(fā)類似請(qǐng)求包,這么像CC攻擊了,服務(wù)器總該做點(diǎn)反應(yīng)吧。
漏洞危害:需根據(jù)實(shí)際功能來(lái)定,大則如漏洞標(biāo)題,任意用戶密碼修改。且即便看似難以利用,在大牛手上將會(huì)用神奇的構(gòu)思,來(lái)證明漏洞的危害。近期,pysolve大牛就在做這樣的事情。
漏洞修復(fù):使用長(zhǎng)度和復(fù)雜性足夠強(qiáng)壯的Pin碼,防止被爆破。
四、短信平臺(tái)自身的問(wèn)題
先不論短信平臺(tái)的應(yīng)用層面的漏洞,我在測(cè)試過(guò)程中遇到的問(wèn)題是:弱口令!直接登陸到短信平臺(tái)。
漏洞成因:維護(hù)人員的安全意識(shí)問(wèn)題。
該短信平臺(tái)只能通過(guò)IP訪問(wèn),未綁定URL。我知曉其存在是由于客戶提供了資產(chǎn)列表。站在客戶的視角,外部用戶難以發(fā)現(xiàn)短信平臺(tái)入口,因此并不重視其安全性。但后續(xù)我發(fā)現(xiàn)通過(guò)Google hack也是能找到這個(gè)短信平臺(tái)的。且有數(shù)字瀏覽器如此強(qiáng)大的存在,怎么可能產(chǎn)生互聯(lián)網(wǎng)孤島呢?
另外短信平臺(tái)一般是由第三方提供,企業(yè)做為使用者難以保證其安全性,因此也可能存在常規(guī)WEB應(yīng)用漏洞。
漏洞危害:短信平臺(tái)的操作權(quán)限一旦被惡意攻擊者獲取,上述提及的幾類漏洞危害都有可能導(dǎo)致。
漏洞修復(fù):站在企業(yè)的角度,對(duì)于這樣一個(gè)第三方系統(tǒng),進(jìn)行代碼審計(jì)、滲透測(cè)試,成本投入都略顯過(guò)大,因此對(duì)于短信平臺(tái),建議使用最直接、最暴力也是我認(rèn)為最合適的方案——制定合適的ACL,限定僅內(nèi)網(wǎng)特定用戶訪問(wèn),如確實(shí)有外網(wǎng)用戶需要使用系統(tǒng),也需采用VPN接入。
總結(jié):
以上四類問(wèn)題是我遇到和見(jiàn)到的,但是,由于我能力和視野有限,考慮得肯定是不夠全面的,也請(qǐng)有經(jīng)驗(yàn)的大牛給予指點(diǎn)。