太阳集团2138备用网址

  • 2019-06-26
  • [加油!向未来]国产大飞机C919遇严峻考验 机翼被“虐”向上弯曲3米 2019-06-26
  • “新四大发明”火了!中国与世界有了新的沟通桥梁 2019-06-26
  • 《都挺好》曝光终极预告 直击当代家庭“痛点” 2019-06-26
  • 2019-06-26
  • 2019-06-26
  • 7月可乘直升机游览青海湖 2019-06-26
  • 2019-06-26
  • 培华学院召开新闻信息培训暨表彰大会 2019-06-26
  • 吉林师范大学《见地》摄影比赛作品选登 2019-06-26
  • 广州南沙工商企业获得电力暖心服务 2019-06-26
  • 张兴海:汽车新制造是全生命周期的新的制造理念和体系 2019-06-21
  • 2019年03月08日 星期五 2019-06-21
  • 【红人馆】合肥摆了9年的米糕摊又小又难找 摊主竟是两位聋哑合伙人! 2019-06-21
  • 华为 Mate 7(尊爵版电信4G)评论 2019-06-21
  • 欢迎来到 黑吧太阳集团2138备用网址 是业内专业的游戏平台,为你提供各式各样的精品游戏,最全的游戏项目,同时还为您提供各种游戏专题游戏攻略人气论坛。

    XSS绕过filter高级技术part1

    来源:本站整理 作者:佚名 时间:2018-12-25 TAG: 我要投稿

    太阳集团2138备用网址 www.r-island.com 在如今的web时代,XSS攻击十分常见,针对xss攻击的防御也有不少,Filter就是一种用来防御xss攻击的最常见的手段,filter通常是采用黑名单的形式或者基于正则表达式来过滤。尽管如此,依然有很多技术可以用来绕过Filter。
    基本变形
    我们可以先从绕过相对简单的filter开始。根据Filter过滤规则复杂度的不同,绕过的难易程度肯定也不同,这些简单的过滤器还是比较容易绕过的,只要做一些基本的变形即可。
    我们用到的大部分技术都是测试XSS漏洞的最简单的payload的变形,就像下面的代码一样。
    alert(1)
    如果测试的参数存在xss,就会弹框显示1.
    Filter肯定会过滤这个payload,不过有时候,我们只要对payload进行一些简单的修改,就能绕过默认的最基础的filter。比如可以尝试在开始的script标签中插入一个空格或者是tab,如下所示:
    alert(1)
    alert(1)
    当然,也可以通过对tab,换行,回车进行编码来绕过,如下所示:
    alert(1)
    alert(1)
    alert(1)
    对标签进行大小写也有可能骗过filter,如下:
    alert(1)
    还有一种方法非常有效,而且通常都能够成功绕过,那就是插入null字节。在xss payload的任何地方插入null字节,有时候可以绕过filter,如下所示:
    alert(1)
    al%00ert(1)
    属性和标签
    HTML属性提供了页面上元素的更多信息。当我们查找XSS漏洞时,通常可以利用这些属性来引入script标签,从而确认是否存在xss。例如,我们以input元素为例,包含一个value的属性,如下:
    我们可以闭合value属性的双引号从而闭合input标签来插入我们的XSS payload,如下:
    alert(1)
    有时候即使使用任意的标签名也可以绕过filter,如下:
    alert(1)
    跟上面的类似,我们也可以替换标签名和第一个属性之间空格来测试,如下:
    alert(1)
    alert(1)
    alert(1)
    alert(1)
    alert(1)
    改变标签名大小写,有时候也会有效果,如下:
    alert(1)
    null字节的小技巧对标签名同样有效,我们可以尝试在不同的位置插入null字节,如下:
    alert(1)
    alert(1)
    这对属性名和属性值也同样适用,如下:
    alert(1)
    a%00lert(1)
    事件处理器(Event Handlers)
    HTML语言也包含了事件,事件就是页面上元素发生的动作。事件处理器就是实现该动作的方法,通常是借助JavaScript。事件可以由浏览器或者用户自己发起,比如下面这些例子都是事件,单击按钮,页面加载或者是抛出错误。
    相关阅读:利用这三个工具进行fuzz测试来发现xss漏洞
    现在我们还是以上面的input标签为例,我们尝试向input标签插入一个包含xss payload的事件,我们可以选择任何合适的事件处理器(这里我们选择onsubmit)来构造payload。如果存在xss漏洞,那么下面的代码,将会在表单被提交时触发弹框,如下:
    根据不同类型的filter,还有很多其他的事件处理器来探测xss漏洞。大部分甚至都不需要用户交互,所以测试时使用这些事件处理器就最好不过了,如下:
    HTML5还引入了一些关于事件处理器的新的攻击因素。比如audio,video和SVG等都可以用来触发xss,如下:
    新的标准也允许在结束标签内使用事件处理器,如下:
    分隔符和括号
    分隔符是用于分隔文本字符串或者其他数据流的一个或多个字符。在挖xss漏洞时,巧妙的使用分隔符非常有效。在HTML中,我们经常使用空格来分隔属性和它的值。还有的时候,只要使用一个单引号或者双引号作为分隔符就可以绕过filter了,如下:
    对分隔符进行编码也可以用来绕过防御,如下:
    重音符或者是反引号也是绕过filter的一种不错的技巧,如下:
    编码版本如下:
    Filter有时候会过滤某些关键词,比如以“on”开头的事件处理器,以此来防御此类xss攻击。
    如果我们把属性的位置换到前面,filter无法识别反引号,会将它视为不是以“on”开头的单独的属性,这样也就可以有效绕过filter了,如下:
    跟分隔符一样,尖括号也可以利用来绕过filter。在某些情况下,filter仅仅只会查找开始括号和闭合括号,然后将尖括号里面的内容与恶意标签黑名单比较。通过使用多个尖括号,有时候可以骗过filter接受后面的代码。再使用双斜线注释掉后面的闭合标签,所以也不会报错,如下:

    [1] [2]  下一页

    【声明】:太阳集团2138备用网址(http://www.r-island.com)登载此文出于传递更多信息之目的,并不代表本站赞同其观点和对其真实性负责,仅适于网络安全技术爱好者学习研究使用,学习中请遵循国家相关法律法规。如有问题请联系我们,联系邮箱admin@www.r-island.com,我们会在最短的时间内进行处理。
    • 最新更新
      • 相关阅读
        • 本类热门
          • 最近下载