当前位置: 首页 > Web前端 > HTML

XSS跨站脚本攻击

时间:2023-04-02 22:19:35 HTML

一、简介XSS(crosssitescript)是指恶意攻击者利用网站不对用户提交的数据进行逃逸或过滤的缺点,然后添加一些代码并将其嵌入到网页中。.它是一种攻击方法,使其他用户在访问时执行相应的嵌入代码,从而窃取用户信息,利用用户的身份执行某些动作,或用病毒入侵访问者。XSS是一种经常出现在Web应用中的计算机安全漏洞,也是目前Web上最主流的攻击方式。二、原因分析主要原因:对客户提交的数据过于信任。客户端提交的数据本来是应用程序需要的,但是恶意攻击者利用网站对客户端提交数据的信任,在数据中插入了一些符号和javascript代码,那么这些数据就会成为应用程序代码的一部分。那么攻击者就可以肆无忌惮的攻击了。解决方法:不要相信客户端提交的任何数据,只要对客户端提交的数据进行相应的过滤后再进行下一步即可。三、XSS攻击的分类1、反射型XSS又称非持久性跨站脚本攻击,是最常见的XSS类型。该漏洞的出现是因为攻击者注入的数据反映在响应中。典型的非持久性XSS涉及带有XSS攻击媒介的链接(即每次攻击都需要用户点击)。2.存储型XSS也称为持久性跨站脚本。一般发生在XSS攻击向量(泛指XSS攻击代码)存储在网站数据库中,并在用户打开页面时执行。每当用户打开浏览器时,脚本就会执行。持久性XSS攻击比非持久性XSS攻击危害更大,因为每次用户打开页面并查看内容时都会自动执行脚本。3.DOMBasedXSS当用户可以交互修改浏览器页面中的DOM并显示在浏览器上时,可能会出现这种漏洞。实际上,它也是一个反射型XSS。通过修改页面DOM节点形成的XSS称为DOMBasedXSS。容易导致DOM型XSS的输入源包括:Document.URLDocument.referrerDocument.cookieWindow.nameLocation.[pathname|href|search|hash]localStorage/globalStorage3.XSS攻击绕过XSS-Filter,使用<>标签注入HTML/JavaScript代码;XSS攻击利用HTML标签的属性值。例如:;(当然,并不是所有的浏览器都支持Javascript伪协议,所以这种XSS攻击有一定的局限性)空格、回车和Tab。如果XSSFilter只将敏感输入字符列入黑名单,例如javascript,用户可以使用空格、回车和Tab键绕过过滤器,例如:;使用事件执行跨站点脚本。例如:,当src错误时,会执行onerror事件;使用CSS跨站。例如:body{backgrund-image:url("javascript:alert('xss')")};扰乱过滤规则。例如:;使用字符编码,这种技术不仅可以让XSS代码绕过服务器端过滤,还可以更好的隐藏Shellcode;(JS支持unicode、eacapes、十六进制、十进制等编码形式);拆分跨站方法,拆分XSS攻击的代码,适用于不过滤XSS关键字符(如<、>)但没有输入字符长度限制的应用;DOM型XSS主要是由客户端脚本通过DOM向页面动态输出数据。它不依赖于向服务端提交数据,而是从客户端获取DOM中的数据,并在本地执行。四、XSS防御措施1、使用XSSFilter对用户提交的数据进行有效校验,只接受我们指定长度或内容的提交,过滤掉其他输入内容。例如:表单数据中指定值的类型:age只能是int,name只能是字母数字等过滤或去除特殊的html标签: