[0day]jQuery Mobile XSS

漏洞影響範圍: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

相關文章
相關標籤/搜索