漏洞影響範圍:css
任何一個website使用了 jQuery Mobile 而且開放了重定向都有可能存在XSS,而且目前尚未相關補丁信息。html
應用介紹:python
jQuery Mobile是jQuery 框架的一個組件(而非jquery的移動版本)。jQuery Mobile 不只會給主流移動平臺帶來jQuery核心庫,並且會發佈一個完整統一的jQuery移動UI框架。支持全球主流的移動平臺。jQuery Mobile開發團隊說:能開發這個項目,咱們很是興奮。移動Web太須要一個跨瀏覽器的框架,讓開發人員開發出真正的移動Web網站。jquery
詳細信息:git
漏洞發現做者[Eduardo Vela (sirdar kcat)],在前幾個月研究SCP繞過的時候發現jQuery Mobile有一個很是奇怪的行爲,它會取URL中的location.hash,輸出到innerHTML中。因此決定仔細的分析一下相關緣由:github
漏洞信息:web
一、檢查你的jQuery Mobile是否在location.hash中api
二、若是看到localtion.hash有URL,它會調用history.pushState,這樣你不能調用history.pushState 到跨域URL跨域
三、它會將innerHTML響應到頁面中瀏覽器
理論上這個是安全的,可是若是你有任意開放的重定向,就會存在這個XSS,由於對於jQuery Mobile來講history.pushState打開是相同的域
做者在2017年2月8號嘗試聯繫了,jQuery Mobile的團隊說:咱們認爲這個一個Open Redirect的漏洞,而不是他們獲取時候鎖形成的漏洞,而且不打算進行更新,
若是更新會破壞現有的應用,因此意味着,這個補丁也不會被更新。
測試URL:http://jquery-mobile-xss.appspot.com/#/redirect?url=http://sirdarckcat.github.io/xss/img-src.html
測試代碼:
main.py
import webapp2 class MainHandler(webapp2.RequestHandler): def get(self): # pylint:disable-msg=invalid-name """Handle GET requests.""" self.response.write(""" <link rel="stylesheet" href="https://code.jquery.com/mobile/1.4.5/jquery.mobile-1.4.5.min.css" /> <script src="https://code.jquery.com/jquery-1.11.1.min.js"></script> <script src="https://code.jquery.com/mobile/1.4.5/jquery.mobile-1.4.5.min.js"></script>""") class RedirectHandler(webapp2.RequestHandler): def get(self): """Handle GET requests.""" self.redirect(str(self.request.get("url"))) APP = webapp2.WSGIApplication([ ('/redirect', RedirectHandler), ('/.*', MainHandler), ], debug=True)
app.yaml
application: jquery-mobile-xss version: 1 runtime: python27 api_version: 1 threadsafe: yes handlers: - url: /.* script: main.APP libraries: - name: webapp2 version: "2.5.2"
從安全從業者的角度來看:每一個使用jQuery Mobile,而且開放了重定向都會存在這個XSS漏洞。
另外值得一提的是,若是你使用了隨機數SCP策略,可是仍然還能夠經過How to bypass CSP nonces with DOM XSS 🎅來進行竊取
下圖爲jQuery Mobile在Stack Overflow的時間圖:
使用統計圖:
總結:
1.若是你的項目不須要開放重定向,那麼能夠能夠嘗試關閉它
2.根據老司機的經驗,Open Redirects是很是常見的錯誤,也能夠認爲是一個通用的漏洞(其中還有一些頗有意思的姿式),不管jQuery Mobile認不認爲這個是否是漏洞,可是對於安全從業者來講都是存在這個XSS漏洞的。
3.jQuery Mobile團隊也推薦使用他們的開發文檔,進行閱讀進行開發。連接
漏洞做者:Eduardo Vela (sirdar kcat)
原文:http://sirdarckcat.blogspot.com/2017/02/unpatched-0day-jquery-mobile-xss.html