jQuery3.0.0-3.5.0版本xss漏洞浅析、复现、修复

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
————————————————
版权声明:本文为CSDN博主「取名儿好难,难于。。。」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_29365787/article/details/106622257

猜你喜欢

转载自blog.csdn.net/anlalu233/article/details/107505628