1. 威客安全首页
  2. 默认分类

每周一喂丨3分钟快速了解防不胜防的XSS攻击


12

每周一喂

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

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

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


每周一喂丨3分钟快速了解防不胜防的XSS攻击


小 贴 士

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等

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


本文部分内容来源:

CSDN博主「注定风是不羁旅人」的原创文章



今天的内容就是这些,了解更多请点击阅读原文。


每周一喂丨3分钟快速了解防不胜防的XSS攻击


原文始发于微信公众号(e安在线):每周一喂丨3分钟快速了解防不胜防的XSS攻击

本文转为转载文章,本文观点不代表威客安全立场。

发表评论

登录后才能评论

联系我们

4006-119-120

在线咨询:点击这里给我发消息

邮件:public@jinlongsec.com

工作时间:周一至周五,9:30-18:30,节假日休息

X