0x01 许多过滤匹配特殊的标签,包括起始与结束尖括号。但是,许多浏览器接受结束括号前的空白符,允许攻击者轻易避开这种过滤。例如:

0x02 因为许多人用小写字符编写HTML代码,所以一些过滤仅检查常用的小写恶意标签。例如:

0x03 一些过滤匹配任何成对的起始与结束尖括号,删除其中的任何内容,但通常可以依靠周围现有的语法,结束注入的标签,从而避开这种过滤。例如:可以控制下面代码中的value属性值:

就可以使用以下不会被过滤阻止的脚本,注入一个包含JavaScript的新标签:

foo">

0x04 一些过滤匹配成对的起始与结束尖括号,提取其中的内容,并将这些内容与标签名称黑名单进行比较。可以通过使用多余的括号避开过滤。

<

0x05 即使空字节后面的文本仍然在应用程序的响应中返回,但如果遇到空字节,一些过滤会停止处理字符串。在被过滤的表达式前插入一个URL编码的空字节即可避开这种过滤。

foo%00

0x06 在不同的目标浏览器中,通常可以在被过滤的表达式中插入能够避开过滤、但仍被浏览器接受的字符:

expr/*****/ession

0x07 如果用户提交的数据在应用过滤后还进行了规范化,我们仍可以通过URL编码或双重编码被过滤的表达式,避开过滤,并对漏洞进行利用。

%3cscript%3e

%253cscript%253e

0x08 由于在服务器执行所有输入确认后,在响应中返回的攻击有效代码会被受害者的浏览器解析,这时候就出现了一种避开规范化的特殊情况。有时候,可以对攻击代码进行HTML编码以避开服务器的输入确认,受害者的浏览器将会再次解析攻击代码。例如,表达式Javascript:常被阻止以防止使用这种协议的攻击。但是,攻击者可以通过各种浏览器接受的方式对该表达式进行HTML编码。例如:

以上三个例子分别使用标准的UTF-8编码、利用多余填补数据的标准编码以及省略分号的十六进制编码。不同的编码类型进行结合,排列组合量非常大。

有时候我们能够成功执行一些JavaScript脚本,但在代码中对一些命令和关键字进行了限制。这个时候,可以通过动态创建并执行语句来避开应用程序的过滤。

应用程序阻止用户提交任何包含表达式document.cookie的数据,可以通过如下方法来避开这种过滤:

var a = "alert(doc" + "ument.coo" + "kie)"; eval(a);

or

var a = "alert(" + String.fromCharCode(100,111,99,117,109,101,110,116,46,99,111,111,107,105,101) + ")"; eval(a);

有时候应用程序会对某些关键字分进行HTML编码(<变成&lt;,>变成&gt;),这种情况下,应用程序可能会完全删除某些字符或表达式,试图利用这种净化来阻止恶意代码的执行。

通常碰到这种字符净化设置,需要查明应用程序净化了哪些字符与表达式,以及能否通过剩下的字符实施攻击。

0x09 如果过滤完全删除某些表达式,并且至少有一个被删除的表达式长度超过一个字符,那么只要应用程序没有进行递归净化,就可能避开过滤。

ipt>

假设应用程序对每个字段实施了长度限制,以阻止在其中插入有效的攻击字符串。但是攻击者仍然可以使用下面的方法,将一段脚本分布到他所控制的三个位置,从而传送一个有效的攻击字符串:

https://xxx.com/account.php?page_id=">"

最终得到的HTML完全有效,其中的源代码块已成为JavaScript注释(包含在/*与*/之间),因此被浏览器忽略。这样注入的脚本被执行。

html表达式 %3c,避开XSS过滤常用方法相关推荐

  1. XSS注入方式和逃避XSS过滤的常用方法(整理)

    (转自黑吧安全网http://www.myhack58.com/) web前端开发常见的安全问题就是会遭遇XSS注入,而常见的XSS注入有以下2种方式: 一.html标签注入 这是最常见的一种,主要入 ...

  2. XSS过滤绕过速查表

    写在前面: 第一次翻译长篇文档,如有疏漏还请各位大牛指正.OWASP的这篇速查表虽然时间比较久了,但还在更新,所以还是翻译出来了.翻译完发现里面还是有一些值得借鉴的思路,用来涨知识还是可以的.由于篇幅 ...

  3. Java简单的XSS过滤方法

    Java简单的XSS过滤方法 因为某甲方程序XSS过滤类一直没起作用,所以百度了下,简单的写了个参数XSS过滤方法.....上代码~~ import java.io.UnsupportedEncodi ...

  4. spring boot集成swagger,自定义注解,拦截器,xss过滤,异步调用,定时任务案例...

    本文介绍spring boot集成swagger,自定义注解,拦截器,xss过滤,异步调用,定时任务案例 集成swagger--对于做前后端分离的项目,后端只需要提供接口访问,swagger提供了接口 ...

  5. java处理XSS过滤的方法

    2019独角兽企业重金招聘Python工程师标准>>> 如果系统中,没有富文本编辑器的功能,那么对于XSS过滤可以采用如下方式过滤 如果采用了struts2,那么需要重写Struts ...

  6. 前端XSS 过滤--亲测有效

    // XSS 过滤         filterXSS: function (str) {             return str               .replace(/&/g ...

  7. Python开发【Django】:组合搜索、JSONP、XSS过滤

    组合搜索 做博客后台时,需要根据文章的类型做不同的检索 1.简单实现 关联文件: from django.conf.urls import url from . import viewsurlpatt ...

  8. python(Django之组合搜索、JSONP、XSS过滤 )

    一.组合搜索 二.jsonp 三.xss过滤 一.组合搜索 首先,我们在做一个门户网站的时候,前端肯定是要进行搜索的,但是如果搜索的类型比较多的话,怎么做才能一目了然的,这样就引出了组合搜索的这个案例 ...

  9. java过滤xss_java处理XSS过滤的方法

    如果系统中,没有富文本编辑器的功能,那么对于XSS过滤可以采用如下方式过滤 如果采用了struts2,那么需要重写StrutsRequestWrapper 如果没有采用struts2,那么直接重写Ht ...

最新文章

  1. python3 使用psutil 查看内存占用
  2. 第三章 图论【未完成】
  3. 大数据之数据库mysql优化实战(一)
  4. 机载计算机网络拓扑结构设计,计算机网络课程设计-网络拓扑结构设计.doc
  5. 下一代的 Actor 模型框架 Proto Actor
  6. SqlServer 备份还原教程
  7. 使用iText来生成PDF
  8. JavaScript中的正则表达式详解
  9. 一个没有停止的android闹钟,一旦开始就要把歌唱完 .
  10. mysql防注入方法_防止SQL注入的六种方法
  11. Android 84、gc、高德、百度、墨卡托地理坐标转换
  12. mysql 复制表结构或创建新表
  13. 7个简单步骤解释区块链挖掘和交易如何工作
  14. redspider无法启动,并行配置不正确
  15. Animator.paly 跳到动画结束
  16. 最新最全论文合集——多模态情感分析
  17. 移动物联网项目搭建(一)——起步
  18. 移动周报:85后程序员,iOS开源项目,细数7天大事件!
  19. 免费图片下载-海量图片一键批量下载免费
  20. 飞阳物联平台开源项目导航

热门文章

  1. SpringBoot请求报403 Forbidden
  2. 【装修选材】自然系原木,才是空间真正的百搭之王!
  3. 选调生推荐表计算机水平如何填写,2020广东选调生报考推荐表填写模板
  4. 第一个开源项目---halcon图像显示控件(缩放/roi操作)
  5. Egret微信游戏接入
  6. 台湾安格AG6202与CS5210参数差异与区别|HDMI转VGA方案比较|AG6202与CS5210电路设计差异
  7. 网络监控软件PRTG的配置及使用
  8. 2. ansible常用模块
  9. 用Python机器人监听微信群聊
  10. 【阅读】《法治的细节》笔记整理