<返回更多

3分钟快速了解防不胜防的XSS攻击

2019-12-12    
加入收藏

XSS是一种出现在网页开发过程中的的计算机安全漏洞,而XSS攻击则是指通过利用这些遗留漏洞,将恶意指令代码注入到网页中,使用户加载并执行攻击者恶意制造的网页程序。

一般情况下,攻击者制造的恶意网页是JAVAScript,但其实Java、 VBScript、ActiveX、 Flash、甚至是普通的html都包括在内。

如果攻击成功,则攻击者会得到目标的部分高级权限、私密网页、会话和cookie等各种内容。

小 贴 士

XSS攻击的中文译名为跨站脚本攻击,英文全拼是Cross Site Scripting。

这时候就有小伙伴会疑惑,明明缩写是css,怎么就变成X了呢?

这是因为另一个名词——层叠样式表的缩写也是CSS(全拼:Cascading Style Sheets),为了不和它混淆,才让X代替了C。

看过了介绍,下面就和e小安再进一步了解XSS攻击的“方方面面”。

XSS攻击的分类

从攻击代码的工作方式看,它可以分为三个类型,分别是:

持久型,攻击者可直接将攻击代码保存到服务端的数据库中,每当用户访问带有相应的查询数据库页面时,攻击就会开始。

反射型,发出请求时,攻击代码存在于URL中,随后提交到服务器进行处理解析,处理完毕之后,XSS代码随同服务器响应内容一并返回给浏览器,随后浏览器解析执行XSS代码。

DOM型,这是一种特殊的反射型XSS,客户端的脚本程序可以动态检查和修改页面内容,而不依赖于服务器端的数据。受害者端的网页脚本在修改本地页面DOM环境时未进行合理的处置,而使得攻击脚本被执行。在整个攻击过程中,服务器响应的页面并没有发生变化,引起客户端脚本执行结果差异的原因是对本地DOM的恶意篡改利用。

XSS常见绕过方式

大小写绕过,网站过滤了script这个关键字时,我们可以尝试切换大小写,例如Script、sCript等等任意大小写组合,因为在脚本语言中,script字母大小写的不同是不影响执行的。

复写绕过,有些网站会把script替换为空字符,这个时候我们双写script可以绕过,例如,scriSCRIPTpt,然后网站会把中间的大写script替换为空字符,而外部小写的scri和后面的pt就会拼接成script,成功绕过。

编码绕过,对于一些过滤关键字的防护我们可以通过编码的方式进行绕过,假如目标过滤了alert,我们就可以通过Unicode编码进行绕过,然而编码过的代码不能被解析,我们可以通过eval()函数来执行,这个函数可以对编码过的内容进行解码之后再执行。

主动闭合绕过,在用户与浏览器进行交互之后,有些网站会修改某些元素,这个时候我们就可以审查页面元素,使用 " 或者 > 来确定具体的绕过方式。

事件绕过,当无法对script进行绕过时,我们就需要通过其他的事件来触发我们需要进行的操作,例如,οnclick=alert(1)、οnerrοr=alert(1)。

XSS攻击常见防护措施

● 对特殊字符进行转义,例如"、’、<、>、&、/

● 对关键字进行过滤,如常见的script、alert、onclick、onerror等

● 对用户交互数据进行矫正,根据自己业务需求,对用户输入的数据是否符合规范进行判断

声明:本站部分内容来自互联网,如有版权侵犯或其他问题请与我们联系,我们将立即删除或处理。
▍相关推荐
更多资讯 >>>