[0day]jQuery Mobile XSS

漏洞影响范围:

任何一个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

时间: 2024-10-13 23:49:17

[0day]jQuery Mobile XSS的相关文章

jQuery Mobile的默认配置项详解,jQuery Mobile的中文配置api,jQuery Mobile的配置说明,配置大全

学习jQuery Mobile也有一段时间了,越来越上手了,也越来越喜欢他了.我根本就没有理由拒绝他的好.这里我有分享一下我对它的配置项的使用说明一下. 看代码解释: $(document).live("pageinit",function(event){ $.mobile.loadingMessage = "正在加载数据,请稍候......"; $.mobile.pageLoadErrorMessage="很抱歉,系统好像再打小瞌睡......"

jQuery Mobile中表单的使用体会

jQuery Mobile是手机端(移动端)页面制作用的框架,包括CSS和JavaScript,此处简单总结一下表单的书写,主要涉及CSS部分.框架提供了表单的一些样式,但在实际使用的时候,我们可能会用自己的自定义样式,这种情况下,框架提供的样式可能就不能满足我们的要求.今天项目中写登录页面的静态网页,碰到了几个问题,在这里和大家交流一下. 1 利用data-role="none" 在使用表单的时候,如果想使用自定义样式,就可以表单元素上给data-role属性赋值none,意思就是不

史上最简单的个人移动APP开发入门--jQuery Mobile版跨平台APP开发

书是人类进步的阶梯. ——高尔基 习大大要求新新人类要有中国梦,鼓励大学生们一毕业就创业.那最好的创业途径是什么呢?就是APP.<构建跨平台APP-jQuery Mobile移动应用实战>就是一本写给没钱没身份没资历的创业小白看的APP书,看完这本书你可以拥有自己的一个APP,不用花钱就能移植到其他移动平台,支持iOS,Android,Windows Phone!!!!!!!!找个最便宜的来练手吧!  小白APP交流Q群:  348632872 清华大学出版社推出的<构建跨平台APP:j

jquery mobile常用的data-role类型介绍

转自原文 jquery mobile常用的data-role类型介绍 data-role参数表: page        页面容器,其内部的mobile元素将会继承这个容器上所设置的属性 header     页面标题容器,这个容器内部可以包含文字.返回按钮.功能按钮等元素 footer       页面页脚容器,这个容器内部也可以包含文字.返回按钮.功能按钮等元素 content     页面内容容器,这是一个很宽容的容器,内部可以包含标准的html元素和jQueryMobile元素 cont

jQuery Mobile学习笔记

1.获取jQuery mobile 文件,访问jQuerymobile网站下载 (貌似使用jquery mobile后,jquery会自动在网页中添加一些class类,第一次知道的我是被吓呆的!!) 2.需要使用数据属性,数据属性是HTML5引入的,以data-开头 比如data-role可以用于定义页眉,页脚,内容,页面等 data-role="page" 是在浏览器中显示的页面. data-role="header" 是在页面顶部创建的工具条 (通常用于标题或者

jquery mobile 移动web(2)

button 按钮 data-role="button" 将超链接变成button. 具有icon 图标的button 组件. 提供了18常用的图标 data-icon ="" 1.arrow-1左箭头 2.arrow-r 右箭头 3.arrow-u 上箭头 4.arrow-d 下箭头 5.delete 删除 6.plus 加号 7.minus 减号 8.check 对号 9.gear 齿轮 10.refresh 刷新 11.forward 前进 12.back 返

jquery mobile 教程

简介:jQuery Mobile框架可以轻松的帮助我们实现非常好看的.可跨设备的Web应用程序.我们将后续的介绍中向大家介绍大量的代码及实例. jQuery一直以来都是非常流行的富客户端及Web应用程序开发中使用的JavaScript类库,然而一直以来它都是为桌面浏览器设计的,没有特别为移动应用程序设计. jQuery Mobile是一个新的项目用来添补在移动设备应用上的缺憾.它是基本jQuery框架并提供了一定范围的用户接口和特性,以便于开发人员在移动应用上使用.使用该框架可以节省大量的js代

jquery mobile的一些插件(图片滚动)

jquery mobile的一些插件(图片滚动) 1,photoswipe 网址:http://www.photoswipe.com/demo: http://www.photoswipe.com/latest/examples/04-jquery-mobile.html个人描述:在手机上操作很流畅,能自使用屏幕尺寸,竖屏显示效果很好,横屏图片太大了,也就是列数固定的原因. 2,Touch-Gallery 网址:http://neteye.github.com/touch-gallery.htm

jQuery Mobile 手动显示ajax加载器

在jquery mobile开发中,经常需要调用ajax方法,异步获取数据,如果异步获取数据方法由于网速等等的原因,会有一个反应时间,如果能在点击按钮后数据处理期间,给一个正在加载的提示,客户体验会更好一些. 先看两个方法,显示和关闭,方法来自于参考:http://blog.csdn.net/zht666/article/details/8563025 <script> //显示加载器 function showLoader() { //显示加载器.for jQuery Mobile 1.2.