漏洞影响范围:
任何一个website使用了 jQuery Mobile 并且开放了重定向都有可能存在XSS,并且目前还没有相关补丁信息。
应用介绍:
jQuery Mobile是jQuery 框架的一个组件(而非jquery的移动版本)。jQuery Mobile 不仅会给主流移动平台带来jQuery核心库,而且会发布一个完整统一的jQuery移动UI框架。支持全球主流的移动平台。jQuery Mobile开发团队说:能开发这个项目,我们非常兴奋。移动Web太需要一个跨浏览器的框架,让开发人员开发出真正的移动Web网站。
详细信息:
漏洞发现作者[Eduardo Vela (sirdar kcat)],在前几个月研究SCP绕过的时候发现jQuery Mobile有一个非常奇怪的行为,它会取URL中的location.hash,输出到innerHTML中。所以决定仔细的分析一下相关原因:
漏洞信息:
1、检查你的jQuery Mobile是否在location.hash中
2、如果看到localtion.hash有URL,它会调用history.pushState,这样你不能调用history.pushState 到跨域URL
3、它会将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