jQuery最新xss漏洞浅析、复现、修复 – 作者:龙渊实验室LongYuanLab

1、xss漏洞的形成和危害

形成:xss漏洞也叫跨站点脚本编制,形成的原因简单说就是应用程序未对用户可控制的输入正确进行无害化处理,就将其放置到充当 Web 页面的输出中。这可被跨站点脚本编制攻击利用。

 

危害:一旦注入恶意脚本后,攻击者就能够执行各种恶意活动。攻击者可能将私有信息(例如可能包含会话信息的 cookie)从受害者的机器传输给攻击者。攻击者可能以受害者的身份将恶意请求发送到Web 站点,如果受害者具有管理该站点的管理员特权,这可能对站点尤其危险。网络钓鱼攻击可用于模仿可信站点,并诱导受害者输入密码,从而使攻击者能够危及受害者在该 Web 站点上的帐户。

主要有三种类型的 XSS:

类型 1:反射的 XSS(也称为“非持久性”)

服务器直接从 HTTP 请求中读取数据,并将其反射回 HTTP 响应。在发生反射的 XSS 利用情况时,攻击者会导致受害者向易受攻击的 Web 应用程序提供危险内容,然后该内容会反射回受害者并由 Web 浏览器执行。

 

类型 2:存储的 XSS(也称为“持久性”)

应用程序在数据库、消息论坛、访问者日志或其他可信数据存储器中存储危险数据。在以后某个时间,危险数据会读回到应用程序并包含在动态内容中。如果其中某个用户执行恶意内容,那么攻击者就有可能能够以该用户的身份执行特权操作,或者获取对属于该用户的敏感数据的访问权。

 

类型 3:基于 DOM 的 XSS

在基于 DOM 的 XSS 中,客户机执行将 XSS 注入页面的操作;在其他类型中,注入操作由服务器执行。基于 DOM 的 XSS 中通常涉及发送到客户机的由服务器控制的可信脚本,例如,在用户提交表单之前对表单执行健全性检查的 Javascript。

 

 

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

2.1环境搭建

对于此漏洞原作者搭建了在线环境,内置了三个xss poc,点击Append via .html()按钮即可触发xss

环境链接

图片[1]-jQuery最新xss漏洞浅析、复现、修复 – 作者:龙渊实验室LongYuanLab-安全小百科

图片[2]-jQuery最新xss漏洞浅析、复现、修复 – 作者:龙渊实验室LongYuanLab-安全小百科

2.2 源码分析

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

图片[3]-jQuery最新xss漏洞浅析、复现、修复 – 作者:龙渊实验室LongYuanLab-安全小百科审查元素发现,点击之后会多出现一个闭合标签</style>,就成功执行了后面的弹窗脚本。

图片[4]-jQuery最新xss漏洞浅析、复现、修复 – 作者:龙渊实验室LongYuanLab-安全小百科

2.3 漏洞解析

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

 

2.4漏洞修复

1、更新jQuery到3.5.0或更高版本

2、使用XSS清理工具清理用户输入的HTML

    清理工具地址

    原文链接

     

来源:freebuf.com 2020-08-13 12:29:25 by: 龙渊实验室LongYuanLab

© 版权声明
THE END
喜欢就支持一下吧
点赞0
分享
评论 抢沙发

请登录后发表评论