jQuery最新xss漏洞浅析、复现、修复

jQuery最新xss漏洞浅析、复现、修复
1、xss漏洞的形成和危害
形成:xss漏洞也叫跨站点脚本编制,形成的原因简单说就是 应用程序未对用户可控制的输入正确进行无害化处理,就将其放置到充当 Web 页面的输出中。这可被跨站点脚本编制攻击利用。
在以下情况下会发生跨站点脚本编制 (XSS) 脆弱性:
[1] 不可信数据进入 Web 应用程序,通常来自 Web 请求。
[2] Web 应用程序动态生成了包含此不可信数据的 Web 页面。
[3] 页面生成期间,应用程序不会禁止数据包含可由 Web 浏览器执行的内容,例如 JavaScript、HTML 标记、HTML 属性、鼠标事件、Flash 和 ActiveX。
[4] 受害者通过 Web 浏览器访问生成的 Web 页面,该页面包含已使用不可信数据注入的恶意脚本。
[5] 由于脚本来自 Web 服务器发送的 Web 页面,因此受害者的 Web 浏览器在 Web 服务器的域的上下文中执行恶意脚本。
[6] 这实际违反了 Web 浏览器的同源策略的意图,该策略声明一个域中的脚本不应该能够访问其他域中的资源或运行其他域中的代码。
危害:一旦注入恶意脚本后,攻击者就能够执行各种恶意活动。攻击者可能将私有信息(例如可能包含会话信息的 cookie)从受害者的机器传输给攻击者。攻击者可能以受害者的身份将恶意请求发送到 Web 站点,如果受害者具有管理该站点的管理员特权,这可能对站点尤其危险。
网络钓鱼攻击可用于模仿可信站点,并诱导受害者输入密码,从而使攻击者能够危及受害者在该 Web 站点上的帐户。最后,脚本可利用 Web 浏览器本身中的脆弱性,可能是接管受害者的机器(有时称为“路过式入侵”)。

主要有三种类型的 XSS:
类型 1:反射的 XSS(也称为“非持久性”)
服务器直接从 HTTP 请求中读取数据,并将其反射回 HTTP 响应。在发生反射的 XSS 利用情况时,攻击者会导致受害者向易受攻击的 Web 应用程序提供危险内容,然后该内容会反射回受害者并由 Web 浏览器执行。传递恶意内容的最常用机制是将其作为参数包含在公共发布或通过电子邮件直接发送给受害者的 URL 中。以此方式构造的 URL 构成了许多网络钓鱼方案的核心,攻击者借此骗取受害者的信任,使其访问指向易受攻击的站点的 URL。在站点将攻击者的内容反射回受害者之后,受害者的浏览器将执行该内容。

类型 2:存储的 XSS(也称为“持久性”)
应用程序在数据库、消息论坛、访问者日志或其他可信数据存储器中存储危险数据。在以后某个时间,危险数据会读回到应用程序并包含在动态内容中。从攻击者的角度来看,注入恶意内容的最佳位置是向许多用户或特别感兴趣的用户显示的区域。感兴趣的用户通常在应用程序中具有较高的特权,或者他们会与对攻击者有价值的敏感数据进行交互。如果其中某个用户执行恶意内容,那么攻击者就有可能能够以该用户的身份执行特权操作,或者获取对属于该用户的敏感数据的访问权。例如,攻击者可能在日志消息中注入 XSS,而管理员查看日志时可能不会正确处理该消息。

类型 3:基于 DOM 的 XSS
在基于 DOM 的 XSS 中,客户机执行将 XSS 注入页面的操作;在其他类型中,注入操作由服务器执行。基于 DOM 的 XSS 中通常涉及发送到客户机的由服务器控制的可信脚本,例如,在用户提交表单之前对表单执行健全性检查的 Javascript。如果服务器提供的脚本处理用户提供的数据,然后将数据注入回 Web 页面(例如通过动态 HTML),那么基于 DOM 的 XSS 就有可能发生。以下示例显示了在响应中返回参数值的脚本。
2、jQuery最新xss漏洞浅析、复现
2.1 环境搭建
对于此漏洞原作者搭建了在线环境,内置了三个xss poc,点击Append via .html()按钮即可触发xss
环境链接:https://vulnerabledoma.in/jquery_htmlPrefilter_xss.html
在这里插入图片描述
在这里插入图片描述

2.2 源码分析
先用第一个红框模拟个开发环境,虽然三个poc都使用了包含onerror事件的img标签,但其实它们是放在属性或style元素内部,因此会绕过HTML清理器。
在这里插入图片描述

审查元素发现,点击之后会多出现一个闭合标签,就成功执行了后面的弹窗脚本。
在这里插入图片描述

2.3 漏洞解析
形成此漏洞的关键是,在html()方法中,作为参数传递的HTML字符串将传递到$.htmlPrefilter()方法,这个方法用于替换自闭合标签,如将 替换为 ,3.x版本之前使用的正则会将x"识别为标签并新增</x”>闭合标签,从而达到xss的效果。

2.4漏洞修复
1、更新jQuery到3.5.0或更高版本
2、使用XSS清理工具清理用户输入的HTML
清理工具地址:https://github.com/cure53/DOMPurify

  • 2
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
### 回答1: 百度编辑器是一款常用的富文本编辑器,在过去曾经发现存在XSS漏洞XSS漏洞是一种跨站脚本攻击,攻击者利用该漏洞注入恶意脚本代码,从而获取用户的敏感信息。 为了修复百度编辑器的XSS漏洞,百度公司采取了一系列的措施。首先,他们深入研究了该漏洞的具体细节和攻击方式,确保对漏洞原理有全面的了解。在这基础上,他们进行了代码审查和漏洞扫描,找出并修复了存在的XSS漏洞。 百度公司还为百度编辑器增加了一系列的安全措施,如输入过滤和输出编码等,以防止恶意脚本代码的注入。他们对用户输入的内容进行严格校验和过滤,删除或转义可能引发XSS攻击的恶意标签和脚本代码。同时,在内容输出时,对用户输入的内容进行编码,确保不会被解析为可执行的脚本代码。 此外,百度公司还加强了用户教育和安全意识的宣传。他们发布了相关的安全指导,向用户介绍如何识别和防范XSS攻击,提醒用户在使用编辑器时要注意输入的内容,避免插入可疑的脚本代码。 通过以上的修复措施和安全措施加强,百度编辑器的XSS漏洞得到了修复和防范。用户在使用百度编辑器时可以更加放心,不会因为该漏洞而面临安全风险。 ### 回答2: 百度编辑器是一款常用的富文本编辑器,用于网页中的编辑功能。XSS(跨站脚本)漏洞是一种常见的安全漏洞,攻击者可以通过注入恶意脚本来进行攻击,从而盗取用户的信息或者利用用户的浏览器进行恶意操作。 针对百度编辑器的XSS漏洞修复,首先需要对编辑器进行代码审计,检测潜在的漏洞点。其次,需要采取一系列的安全措施来防止XSS攻击的发生。 下面是一些可能的修复措施: 1. 输入验证与过滤:对编辑器接收的用户输入进行合法性验证和过滤,可以使用安全的HTML过滤库来过滤用户输入中非法的HTML标签和JavaScript代码。 2. 转义输入:对用户输入的特殊字符进行转义处理,确保不会被当作HTML标签或JavaScript代码执行。 3. 设置安全的CSP策略:通过设置Content Security Policy(CSP)头部,限制只允许加载指定的资源,防止恶意脚本的执行。 4. 启用HttpOnly Cookie:将会话cookie标记为HttpOnly,使其无法通过脚本访问,防止被窃取。 5. 限制脚本执行权限:通过沙盒机制或其他技术,将编辑器的执行环境限制在安全的范围内,防止恶意脚本的执行。 6. 更新与升级:即使修复了已知的XSS漏洞,也需要及时更新百度编辑器的版本,以获取最新的安全补丁。 除了以上措施,还应该加强对百度编辑器的安全测试和监控,及时发现和修复新的漏洞。此外,用户也应该积极采取防范措施,避免输入敏感信息或信任可疑来源的内容。 ### 回答3: 百度编辑器是一款常用的在线编辑器工具,但在使用过程中,存在着某些xss漏洞,需要及时修复以保障用户的安全和信息的完整性。 首先,针对百度编辑器的xss漏洞修复措施主要可以从以下几个方面入手。 1. 输入过滤:对用户输入的内容进行过滤,确保输入的信息不包含可执行的代码,常见的做法是通过正则表达式、过滤器等方式来过滤和消毒用户输入的数据,从而防止恶意代码的注入。 2. 输出转义:在将用户输入的内容输出到页面时,对其中的特殊字符进行转义处理,例如将<、>、"等字符转换为对应的HTML实体或转义序列,从而避免特殊字符被解析成标签或脚本。 3. 静态资源的限制:在编辑器中插入的外部静态资源如图片、脚本等,在加载和解析过程中容易受到攻击,因此可以限制允许加载的静态资源的白名单,只允许特定来源的资源被加载。 4. HttpOnly标志和安全策略:在设置cookie时,通过添加HttpOnly标志和设置安全策略,可以防止部分脚本攻击,保护用户cookie信息的安全。 5. 及时更新和升级:百度编辑器作为一个开源项目,应该及时关注漏洞修复和安全更新,及时更新到最新版本,以保持对新型攻击方式的防范能力。 总之,修复百度编辑器的xss漏洞需要采取一系列综合措施,包括输入过滤、输出转义、资源限制、HttpOnly标志和安全策略的设置,以及及时更新和升级等,确保编辑器的安全性和用户的信息安全。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值