XSS攻击

1.什么是xss攻击呢?

xss攻击又叫跨站脚本攻击,xss攻击指的是通过利用网页开发时留下的漏洞,通过巧妙地方法注入恶意指令代码到网页,使用户加载并执行攻击者恶意制造的网页程序,这些恶意的网页程序通常是JavaScript,但实际也可以包括Java、 VBScript、ActiveX、 Flash 或者甚至是普通的HTML,攻击成功后,攻击者可能得到包括但不限于更高的权限(如执行一些操作)、私密网页内容、会话和cookie等各种内容。

2.xss攻击的分类

从攻击代码的工作方式可以分为三个类型。

  1. 持久型,这种类型攻击者直接将攻击代码保存带服务端中的数据库中,每当用户访问带有相应的查询数据库页面时,攻击成效
  2. 反射型,发出请求时,攻击代码存在于URL中,随后提交到服务器进行处理解析,处理完毕之后,xss代码随同服务器响应内容一并返回给浏览器,随后浏览器解析执行xss代码
  3. DOM型,dom型是一种特殊的反射型xss,客户端的脚本程序可以动态地检查和修改页面内容,而不依赖于服务器端的数据,受害者端的网页脚本在修改本地页面DOM环境时未进行合理的处置,而使得攻击脚本被执行。在整个攻击过程中,服务器响应的页面并没有发生变化,引起客户端脚本执行结果差异的原因是对本地DOM的恶意篡改利用。

3.xss常见绕过方式

  1. 大小写绕过,在网站过滤了script这个关键字时,我们可以尝试切换大小写,例如Script、sCript等等任意大小写组合,因为在脚本语言中,script关键字字母大小写的不同是不不影响执行的
  2. 复写绕过,有些网站会把script替换为空字符,这个时候我们双写script就可以绕过,例如,scriSCRIPTpt,这个时候,网站会把中间的大写的script替换为空字符,而外部小写的scri和后面的pt就会拼接成script,成功绕过
  3. 编码绕过,对于一些过滤关键字的防护我们可以通过编码的方式进行绕过,假如目标过滤了alert,我们就可以通过Unicode编码进行绕过,然而编码过的代码不能被解析,我们可以通过eval()函数来执行,这个函数可以对编码过的内容进行解码之后在执行
  4. 主动闭合绕过,在用户与浏览器进行交互之后,有些网站会修改某些元素,这个时候我们就可以审查页面元素,使用 " 或者 > 来确定具体的绕过方式
  5. 事件绕过,当无法对script进行绕过时,我们就需要通过其他的事件来触发我们需要进行的操作,例如,οnclick=alert(1)、οnerrοr=alert(1)
  6. 组合方式,在实战中,可能不会这么简单,往往需要我们组合多种方式进行绕过,需要认真仔细观察每一个元素的变化,从而达到绕过的目的

4.xss常见防护措施方式

  1. 对特殊字符进行转义,例如"、’、<、>、&、/
  2. 对关键字进行过滤,如常见的script、alert、onclick、onerror等等
  3. 对用户交互数据进行矫正,根据自己业务需求,对用户输入的数据是否符合规范进行判断
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值