1513浏覽量

任何使用jQuery Mobile網站中(zhōng)都存在一(yī)個尚未修複的XSS漏洞

來源:securityaffairs.co 時間:2017-02-16

根據國外(wài)媒體(tǐ)的最新報道,谷歌公司的安全工(gōng)程師Eduardo Vela在jQuery Mobile框架中(zhōng)發現了一(yī)個安全漏洞,這個漏洞将會讓所有使用了jQuery Mobile的網站暴露于跨站腳本攻擊風險之下(xià)

安全客小(xiǎo)百科:jQuery Mobile

jQuery Mobile項目(jQuery框架中(zhōng)的一(yī)個組件)是一(yī)個基于HTML5的開(kāi)發框架,在它的幫助下(xià),開(kāi)發者可以設計出能夠适配目前主流移動設備和桌面系統的響應式Web站點以及應用程序。實際上,jQuery Mobile不僅可以爲主流移動平台提供jQuery的核心庫,而且它也是一(yī)個較爲完整統一(yī)的jQuery移動UI框架。根據jQuery開(kāi)發團隊的介紹,目前全球範圍内大(dà)約有十五萬個活動站點是采用jQuery Mobile開(kāi)發的。

jQuery Mobile是目前一(yī)個非常熱門的項目,下(xià)圖顯示的是Stack Overflow上關于jQuery Mobile的提問數量增長情況:

static/picture/t019d883c401fe9c6dd.png

下(xià)圖顯示的是jQuery Mobile的使用統計情況:

static/picture/t01b096af9b34808181.png

漏洞描述


幾個月之前,當時的Vela正在苦苦尋找内容安全策略(CSP)的繞過方法,但是在研究的過程中(zhōng)他注意到了jQuery Mobile的一(yī)種非常有意思的行爲。jQuery Mobile會從location.hash屬性中(zhōng)獲取任意的URL地址,然後再用innerHTML來處理這個URL地址所返回的響應,而在某些特定條件下(xià),攻擊者就可以利用它的這種特性來攻擊目标網站。當他發現了這種奇怪的行爲之後,他便開(kāi)始繼續研究,以确定網站是否存在跨站腳本漏洞。

Vela在對這個XSS漏洞進行了深入分(fēn)析之後給出了該漏洞的運行機制,大(dà)緻如下(xià):

1.     jQuery Mobile首先會檢查location.hash屬性值。

2.     如果location.hash中(zhōng)的數據看起來跟URL地址差不多的話(huà),它會嘗試将其添加到浏覽曆史記錄之中(zhōng)(通過history.pushuState實現),然後再利用XMLHttpRequest來對其進行請求訪問。

3.     接下(xià)來,它會使用innerHTML來處理服務器端的響應數據。

它首先會嘗試調用history.pushState方法,這會增加一(yī)定的攻擊難度,因爲你無法對一(yī)個跨域的URL使用history.pushState方法。安全專家解釋稱,雖然從理論上來說,history.pushState方法理應能夠防範XSS攻擊,但如果網站存在開(kāi)放(fàng)重定向漏洞的話(huà),攻擊者依舊(jiù)有可能利用這種安全漏洞來對目标站點實施攻擊。

下(xià)面是Vela給出的demo【代碼下(xià)載】:

1
http://jquery-mobile-xss.appspot.com/#/redirect?url=http://sirdarckcat.github.io/xss/img-src.html

根據安全研究專家的描述,目前有很多網站都無法抵禦這種類型的攻擊,因爲很多組織并不認爲“開(kāi)放(fàng)重定向”是一(yī)種安全漏洞,而需要注意的是,像谷歌(/search)、YouTube(/redirect)、Facebook(/l.php)、百度(/link)以及雅虎(/ads/pixel)這樣的熱門網站都存在這種安全漏洞。

static/picture/t01c781829812cff638.png

壞消息來了


實際上,這是一(yī)個非常簡單的漏洞,想要找到這種漏洞其實也很容易。在Vela确認了該漏洞之後,他便立刻将漏洞信息上報給了jQuery Mobile的開(kāi)發團隊,但是當開(kāi)發團隊确認了該漏洞将會給用戶帶來的安全風險之後,Vela卻被告知(zhī)這個漏洞不會得到修複。

如果修複了該漏洞的話(huà),目前很多正在運行的Web站點和應用程序都将會受到影響,這也是開(kāi)發團隊選擇不修複該漏洞的原因之一(yī)。Vela在其發表的研究報告【傳送門】中(zhōng)寫到:“jQuery Mobile團隊解釋稱,他們認爲“開(kāi)放(fàng)重定向”是一(yī)種安全漏洞,但是jQuery Mobile的這種獲取并呈現URL内容的這種行爲并不是一(yī)種安全缺陷,而且如果要修複這種所謂的“安全漏洞”,那麽将會使大(dà)量目前已上線的Web站點和應用程序出現異常,所以他們并不打算做任何的修改。這也就意味着,jQuery Mobile的開(kāi)發團隊不會就這個問題發布任何的更新補丁。而這也同樣意味着,所有使用了jQuery Mobile且存在開(kāi)放(fàng)重定向的網站都将存在跨站腳本漏洞。”

static/picture/t01428c9714dd18b79a.png

如果目标網站不存在開(kāi)放(fàng)重定向漏洞的話(huà),攻擊者是否還可以利用這個XSS漏洞來實施攻擊呢?Vela和很多其他的安全研究人員(yuán)也正在進行嘗試,但目前仍未取得成功。

Vela表示:“如果你有時間的話(huà),你可以在沒有開(kāi)放(fàng)重定向漏洞的條件下(xià)嘗試去(qù)利用這個XSS漏洞來實施攻擊,這也是一(yī)種研究思路。我(wǒ)試過很多種方法,但目前都還沒有取得成功。”

總結


開(kāi)放(fàng)重定向(Open Redirect)是非常常見的,但它也同樣會給網站和應用程序帶來巨大(dà)的安全風險,因此Vela建議安全社區應該修複“開(kāi)放(fàng)重定向”這個功能中(zhōng)存在的安全問題。或者說我(wǒ)們應該統一(yī)思想,然後一(yī)起将其視爲一(yī)種安全漏洞。如果整個安全行業在這一(yī)點無法達成一(yī)緻的話(huà),估計還有更多的XSS漏洞在等待着我(wǒ)們。

聯系我(wǒ)們

一(yī)次需求提交或許正是成就一(yī)個出色産品的開(kāi)始。
歡迎填寫表格或發送合作郵件至: qczsky@126.com

大(dà)理青橙科技

電(diàn)話(huà):13988578755 13988578755

郵箱:qczsky@126.com

地址:大(dà)理市下(xià)關龍都春天10層