漏洞影响范围: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