您好,登錄后才能下訂單哦!
本篇文章為大家展示了怎樣發(fā)現(xiàn)雅虎郵箱APP的存儲型XSS漏洞,內(nèi)容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細(xì)介紹希望你能有所收獲。
漏洞情況
我測試的對象是 Yahoo! Mail iOS APP應(yīng)用,也就是雅虎郵箱的iOS版本,在該APP應(yīng)用程序的xml文件中存在一個存儲型XSS漏洞。攻擊者可以利用XML特性構(gòu)造任意HTML/Javascript代碼嵌入郵件,在該APP用戶打開郵件時,都可以實現(xiàn)這種任意代碼渲染呈現(xiàn),極端點來說,利用XML的實體擴(kuò)展攻擊,可以形成DoS攻擊,造成APP服務(wù)崩潰。
XML實體擴(kuò)展攻擊:XML Entity Expansion實現(xiàn),通過在XML的DOCTYPE中創(chuàng)建自定義實體的定義實現(xiàn),比如,這種定義可以在內(nèi)存中生成一個比XML的原始允許大小大出很多的XML結(jié)構(gòu),用它來使這種攻擊得以耗盡網(wǎng)絡(luò)服務(wù)器正常有效運行的必需內(nèi)存資源。
在任意的雅虎郵箱登錄網(wǎng)頁或客戶端中登錄進(jìn)入你的雅虎郵箱,然后上傳以下樣式的一個xml文件作為郵件附件,之后,把這封帶以下 yahoo-xss.xml 附件的郵件,發(fā)送到你自己的雅虎郵箱或另一雅虎測試郵箱中去。
<?xml version=”1.0″ encoding=”utf-8″?> <svg xmlns=”http://www.w3.org/2000/svg”> <script>prompt(document.location)</script> </svg>
用雅虎郵箱iOS客戶端(Yahoo! Mail iOS APP),進(jìn)入你的收件測試雅虎郵箱,查看 yahoo-xss.xml 附件,打開它,看看是否有XSS反應(yīng)。結(jié)果是當(dāng)然有的,會嚇了你一跳。如下:
注意:我也搞不懂啥原因,雅虎郵箱iOS應(yīng)用中的XML渲染機(jī)制非常怪異危險。如果你收到包含以上yahoo-xss.xml 附件的多個附件,那么,即使你打開其它附件的時候,這個 yahoo-xss.xml 觸發(fā)的存儲型XSS都會解析跳出。
我匆匆忙忙地上報了這個漏洞,以下是雅虎安全團(tuán)隊人員在HackerOne上給我的回應(yīng):
到了這步,接下來我要做的就是想辦法來最大化利用這個漏洞,看看能對雅虎郵箱iOS應(yīng)用形成什么比較壞的安全威脅和影響。但無奈我一時半會也沒什么頭緒,只好先放一放。
后來有一天,我突然想到了一種提升漏洞利用且安全無害的方法,那就是我可以用HTTP請求,像“GET”方式一樣,嘗試對本地APP客戶端資源進(jìn)行獲??!BingGo!我一試,真成了!我可以用這種方法獲取到雅虎郵箱iOS應(yīng)用的整個緩存數(shù)據(jù),其中包括用戶cookie、通訊錄列表、郵件內(nèi)容等等。
首先,在任意雅虎郵箱網(wǎng)頁或客戶端中登錄你的雅虎郵箱賬戶,上傳一個如下包含如下代碼的XML文件,然后,把它作為附件發(fā)送到你的另外一個測試雅虎郵箱中(受害者郵箱)。
在你的雅虎測試郵箱中打開這個收到的XML附件,基于上面我提到的那個“怪異”的XML解析原因,這里可以想像一種情況:當(dāng)攻擊者向你發(fā)送了一個PPT文檔,但在附件中也附加了以上那個可以觸發(fā)XSS的XML文件,那么,當(dāng)你打開收到的PPT文檔時,這個XML文件也就會同時觸發(fā)XSS反應(yīng)。也就是說,無論你有多少個附件(包括視頻附件),只要包含以上那個XML附件,你打開其它任何一個附件,都會奇怪地觸發(fā)XML文件中XSS漏洞。
利用該漏洞,構(gòu)造key.xml,我可以獲取受害者郵箱中包括發(fā)送者、接收者和聯(lián)系人在內(nèi)的通訊錄信息。在XML附件代碼中,XSS漏洞會首先顯示客戶端的瀏覽器版本信息,然后是定位文件位置,再之后是獲取郵件列表信息(這里看網(wǎng)速,估計需要30秒左右的時間)。之后,點擊key.xml的OK之后,郵件列表信息就通過GET方式回傳給攻擊者了,像下圖這樣。我是在內(nèi)部局域網(wǎng)中做的測試,我的Server接收端用nc -lvvv 8090開啟了8090端口監(jiān)聽:
利用該漏洞,構(gòu)造cachedbpost.xml,我可以獲取受害者的Cookie信息。點擊cachedbpost.xml的OK之后,整個Cache.db文件就會通過POST方式回傳給攻擊者,如下圖所示。我在內(nèi)部局域網(wǎng)中做的測試,我的Server接收端用nnc -lvvv 8090 > yahoo.db命令開啟了8090端口監(jiān)聽,并把Cache.dbd存儲為yahoo.db:
收到完整的Cache.db文件之后,我們把其中的標(biāo)題頭內(nèi)容過濾,用以下命令檢索形成完整的受害者cookie信息:
strings yahoo.db | grep -i Cookie -A 10 -B 5
另外,還可以按http服務(wù)端來進(jìn)行枚舉,形成對特定網(wǎng)站的請求cookie:
strings yahoo.db | grep -i https
雅虎安全團(tuán)隊工作人員接收到該漏洞后,迅速進(jìn)行了分類、修復(fù)和處置。
任何攻擊者可以利用該漏洞,構(gòu)造特定的XML文件發(fā)送給任何用戶,進(jìn)而獲取到受害者用戶郵箱中包括發(fā)送者、接收者、Cookie和聯(lián)系人在內(nèi)的敏感信息。
我的測試環(huán)境:
iPhone 6 – iOS v11.2.5.
受影響iOS客戶端版本:
Yahoo! Mail app v4.XX.X (XXXXX)
上述內(nèi)容就是怎樣發(fā)現(xiàn)雅虎郵箱APP的存儲型XSS漏洞,你們學(xué)到知識或技能了嗎?如果還想學(xué)到更多技能或者豐富自己的知識儲備,歡迎關(guān)注億速云行業(yè)資訊頻道。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。