溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

微軟Outlook for Android移動(dòng)應(yīng)用的XSS漏洞示例分析

發(fā)布時(shí)間:2021-12-23 09:29:44 來源:億速云 閱讀:178 作者:柒染 欄目:安全技術(shù)

微軟Outlook for Android移動(dòng)應(yīng)用的XSS漏洞示例分析,相信很多沒有經(jīng)驗(yàn)的人對(duì)此束手無策,為此本文總結(jié)了問題出現(xiàn)的原因和解決方法,通過這篇文章希望你能解決這個(gè)問題。

今天分享的Writeup是關(guān)于Outlook for Andriod的存儲(chǔ)型XSS漏洞,作者通過朋友發(fā)來的技術(shù)郵件偶然發(fā)現(xiàn)了該漏洞,歷經(jīng)長(zhǎng)達(dá)幾個(gè)月的復(fù)現(xiàn)構(gòu)造,最終微軟承認(rèn)了該漏洞(CVE-2019-1105)。

漏洞發(fā)現(xiàn)原因

2018年底的時(shí)候,我一個(gè)朋友發(fā)郵件請(qǐng)我?guī)兔Ψ治鏊谘芯康囊恍㎎avaScript代碼,雖然我不做漏洞挖掘,但他發(fā)過來的郵件在我的手機(jī)上顯示出了一些奇怪的東西。我手機(jī)是安卓系統(tǒng),以下是隱去發(fā)件人信息的郵件顯示截圖:

微軟Outlook for Android移動(dòng)應(yīng)用的XSS漏洞示例分析那個(gè)灰色邊框,越看越有點(diǎn)奇葩。當(dāng)我分析后發(fā)現(xiàn)。這可能是其中JavaScript包含了一個(gè)HTML形式的iframe框架,該iframe框架在解析時(shí),手機(jī)應(yīng)用無法正常顯示呈現(xiàn)。但可疑的是,當(dāng)我用筆記本電腦打開郵件時(shí),整個(gè)解析都是正常的,如下所示:

微軟Outlook for Android移動(dòng)應(yīng)用的XSS漏洞示例分析這讓我覺得是一個(gè)問題:在郵件中嵌入iframe框架可能會(huì)是一個(gè)漏洞,這可能和我手機(jī)上的Outlook應(yīng)用有關(guān)。就Outlook來說,比較扯的是,iframe框架不受阻止外部圖像設(shè)置的BlockExternalImages影響,但是,如果攻擊者有能力在郵件中植入可運(yùn)行的JavaScript代碼,那將會(huì)是一個(gè)危險(xiǎn)的安全威脅。

BlockExternalImages:Outlook  for iOS/Andriod中的安全設(shè)置,BlockExternalImages設(shè)置為true時(shí)將啟用阻止外部圖像。

有鑒于此,為了驗(yàn)證我的猜測(cè),我嘗試在電子郵件中插入腳本標(biāo)簽tag去代替iframe框架,但是不行。然而,我發(fā)現(xiàn),可以通過在iframe框架中使用JavaScript URL,就能構(gòu)造出一種繞過這種限制的方法,這就非常有意思了。

通過電子郵件實(shí)現(xiàn)的存儲(chǔ)型XSS(Stored XSS)

通常,在一個(gè)Web瀏覽器中,可以通過javascript:這樣的語法形式來調(diào)用一個(gè)URL,但是由于同源策略限制,單獨(dú)域下的iframe框架中的JavaScript是不能對(duì)頁(yè)面中的其它數(shù)據(jù)進(jìn)行訪問獲取的。在Outlook for Andriod應(yīng)用中,卻不存在這樣的限制,我構(gòu)造的iframe框架中的JavaScript可以對(duì)我的用戶cookie、token甚至其它郵件發(fā)起訪問,不僅如此,還能把這些信息發(fā)回給攻擊者的遠(yuǎn)程控制端,汗......。

這種安全問題相當(dāng)可怕,要實(shí)現(xiàn)漏洞利用,攻擊者只需發(fā)送一封包含有經(jīng)過構(gòu)造的JavaScript代碼郵件給受害者,受害者用Outlook打開就會(huì)中招。正常來說,Outlook會(huì)對(duì)一些不安全的語法語義進(jìn)行過濾轉(zhuǎn)義,但由于構(gòu)造的JavaScript代碼處于iframe框架中,Outlook服務(wù)端不會(huì)對(duì)其進(jìn)行探測(cè)發(fā)現(xiàn),所以當(dāng)郵件傳送交付后,Outlook客戶端也不會(huì)對(duì)其執(zhí)行過濾轉(zhuǎn)義,最終,包含在iframe框架中的JavaScript就能在客戶端手機(jī)設(shè)備上成功運(yùn)行了。這也就是我們所說的存儲(chǔ)型XSS(Stored    XSS),這種類型漏洞的風(fēng)險(xiǎn)隱患極大,攻擊者可以利用它來實(shí)現(xiàn)多種目的,包括竊取信息和回傳數(shù)據(jù)。攻擊者只需向受害者發(fā)送一封構(gòu)造好的郵件,當(dāng)受害者閱讀之后,就能竊取受害者的cookie、其它郵件或是個(gè)人數(shù)據(jù)等敏感信息。嚴(yán)重點(diǎn)說,這種存在于郵件閱讀客戶端的Stored XSS可經(jīng)武器化分發(fā)部署,造成大規(guī)模的蠕蟲或惡意軟件方式的破壞感染。

漏洞上報(bào)后的復(fù)現(xiàn)歷程

我覺得這是一個(gè)大問題,急需讓微軟方面知曉。于是,針對(duì)該漏洞,我制作了一個(gè)簡(jiǎn)短的PoC,它會(huì)執(zhí)行一段任意外部腳本去竊取和回傳個(gè)人敏感信息,由于漏洞利用構(gòu)造不夠深入,其中沒有太多對(duì)郵件數(shù)據(jù)的訪問獲取展示。我馬上把這個(gè)PoC發(fā)給了微軟安全團(tuán)隊(duì)。

關(guān)于該漏洞,我確實(shí)不知道引發(fā)漏洞的源代碼出在哪里,因?yàn)槲易约壕蜎]有Outlook程序源碼,而且,我基本沒有調(diào)試移動(dòng)應(yīng)用的經(jīng)驗(yàn),但我想開發(fā)人員看到這段PoC后應(yīng)該能理解。

但遺憾的是,微軟安全團(tuán)隊(duì)卻復(fù)現(xiàn)不了該漏洞,我也陷入了難堪和困境,但這明顯是真的啊,我又向微軟安全團(tuán)隊(duì)發(fā)了一段我這邊漏洞復(fù)現(xiàn)的視頻,之后,我了解到有一名安全研究人員也上報(bào)了該漏洞,但根據(jù)POC,微軟安全團(tuán)隊(duì)仍然沒成功復(fù)現(xiàn)。

為了證實(shí)是否是Outlook設(shè)置存在差異導(dǎo)致的原因,我又進(jìn)行了一些測(cè)試,但也沒發(fā)現(xiàn)問題所在,看來,這個(gè)漏洞要涼涼了。

微軟:不能復(fù)現(xiàn)就不算漏洞

每個(gè)安全工程師和開發(fā)人員都會(huì)告訴你,不能重現(xiàn)的bug是一個(gè)令人頭痛的問題,他們的時(shí)間對(duì)企業(yè)來說是寶貴而有限的資源。廠商安全團(tuán)隊(duì)可以花費(fèi)很多精力去復(fù)現(xiàn)一個(gè)漏洞,最終的推理會(huì)是,如果他們不能成功復(fù)現(xiàn)漏洞,那么攻擊者也不太可能成功復(fù)現(xiàn)和利用。所以從這點(diǎn)來說,廠商安全團(tuán)隊(duì)會(huì)盡量把責(zé)任推卸到上報(bào)漏洞的安全研究者身上,他們希望的是盡可能方便復(fù)現(xiàn)和確認(rèn)的上報(bào)方式。

突破

我不能就這樣罷休,幾個(gè)月之后,這個(gè)漏洞仍然是我的一塊心病,如何能讓微軟安全團(tuán)隊(duì)得以確認(rèn)是一個(gè)難點(diǎn)。為此,我想到了從Outlook應(yīng)用中提取HTML加載內(nèi)容的方法,之后我才體會(huì)到,這種提取方式可能就是漏洞本身的問題吧!我能從Outlook應(yīng)用中竊取數(shù)據(jù),也就說明我可以用它讀取和加載其中的HTML內(nèi)容。于是,結(jié)合這個(gè)點(diǎn),我構(gòu)造了一個(gè)新的Payload,有了如下執(zhí)行效果:

微軟Outlook for Android移動(dòng)應(yīng)用的XSS漏洞示例分析我構(gòu)造的Payload形如以下:

<iframe src="javascript:alert(window. top. document. body. innerHTML+'')"src=h

該P(yáng)ayload在Outlook服務(wù)端會(huì)被轉(zhuǎn)義為HTML形式,但在Outlook客戶端,它會(huì)被解析成:

<iframe src="javascript:alert(window. top. document. body. innerHTML+'')"src=h</iframe>

漏洞出在客戶端的代碼解析中,Payload中的電話號(hào)碼tel:+442330最終會(huì)被形成可點(diǎn)擊按鈕。該漏洞之前一直不能由微軟成功復(fù)現(xiàn),是因?yàn)槲野盐沂謾C(jī)中的本地化設(shè)置為了UK,其電話號(hào)碼會(huì)被判斷為有效號(hào)碼,而其它樣式的本地化設(shè)置,將會(huì)把這個(gè)UK號(hào)碼識(shí)別為無效號(hào)碼,所以不能有效復(fù)現(xiàn)。

終于發(fā)現(xiàn)了問題所在,我把Payload中的電話設(shè)置成了US格式xxx-xxx-xxxx,它支持多種地區(qū)化設(shè)置下的漏洞復(fù)現(xiàn),我迅速地向微軟安全團(tuán)隊(duì)上報(bào)了POC。2019年3月26日,微軟方面復(fù)現(xiàn)了漏洞并承諾在90天內(nèi)進(jìn)行修復(fù)。

看完上述內(nèi)容,你們掌握微軟Outlook for Android移動(dòng)應(yīng)用的XSS漏洞示例分析的方法了嗎?如果還想學(xué)到更多技能或想了解更多相關(guān)內(nèi)容,歡迎關(guān)注億速云行業(yè)資訊頻道,感謝各位的閱讀!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI