设为首页|收藏本站|求打赏关注微信公众号

腾龙技术论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

PS鏁欑▼
【官方公告】论坛所有广告均为商业行为,需要交易的请尽量走担保程序,所有因广告产生的任何纠纷请私下解决,版主出售东西是私人行为,如有纠纷请私下解决,与论坛无关。【官方公告】禁止发布黑客工具如,扫描,抓鸡,爆破...等破坏网络安全的工具!欢迎举报违规工具! 【站外广告】挂机赚钱-利用硬件平台的CPU和GPU的运算能力——利用闲置资源做分布式计算(云计算),这种模式不占硬盘空间,不占网速,联网即可!注册就送钱【站外广告】出售免杀远控 上线无提示 重启上线 可捆绑任意图片或可执行文件,另出售集群,挖矿软件 收徒~ 
 【站外广告】出售单文件过启动远控,超级完美的稳定性,出售扫爆服务器,需要联系QQ835266201【站外广告】接网站DDOS或cc压力攻击秒杀高防云盾,有需要Q我!QQ510676301【站外广告】DarkNet论坛,有丰富的黑客工具教程,免杀远控资源【站外广告】出售扫爆服务器,永不封机!100G防御免疫CC,QQ:3249264512
【站外广告】DDoS攻击,CC攻击,压力测试服务,出售扫描爆破服务器 QQ 2100818883【站外广告】出售高端远控全套源码!高效稳定,完美无暇!支持所有系统上线!更换启动方式,上线率大大增强,另更改通讯增强稳定性,多元化功能插件集合归一,完全开源无密,增加很多高级功能,一款非常强大的远程管理程序!QQ:3249264512【站外广告】网站搭建,博客搭建,网站搬家,QQ:676672384投放广告请联系QQ:2918857571
本站长不接单,不卖远控之类的。
查看: 662|回复: 0

HTTP协议 过WAF(狗/盾)

[复制链接] |关注本帖
  • TA的每日心情
    奋斗
    2019-9-6 11:31
  • 签到天数: 265 天

    连续签到: 1 天

    [LV.8]以坛为家I

    430

    主题

    792

    帖子

    4624

    积分

    ☆独步武林★

    Rank: 8Rank: 8

    UID
    2342
    威望
    1344
    贡献
    636
    在线时间
    109 小时
    注册时间
    2017-1-18
    扫一扫,手机访问本帖
    发表于 2019-8-30 12:24 | 显示全部楼层 |阅读模式
    0x00 前言
    1.最近在整理并总结bypass WAF的一些方法,大概几个板块:注入绕过、漏洞exp绕过、上传绕过以及HTTP协议绕过。期间通过学习
      很多国内外好的资源收获了不少,也给大家分享些方法。
    2.这里仅以HTTP协议其中一部分来bypass WAF来测试并编写sqlmap 的Tamper 发文当天仅测试了安全狗、D盾其他没有测试。
    总结的手段大概如下(截图):
    640.webp.jpg
    0x01 HTTP协议
    协议版本。首先HTTP协议从开始的HTTP0.9版本-->1.0--->1.1-->逐步到现在的2.0。不断的在完善,也不断的有特性的改变,所以在进行bypass WAF的时候也可以利用版本的不用同来对WAF进行测试,利用WAF可能没有完全包含全HTTP协议版本的特性点进行fuzz.

    HTTP 头部参数。http头参数平时并没有很仔细研究,在阅读相关资料后,你会发现每个头部甚至参数都还有其他特性用法。过WAF的时候也是利用其特性来绕过,常规的样式WAF早就记录,但是可能遗漏很多其他特性。

    常见的HTP请求头(如图):

    QQ截图20190830121851.png
    这个是最普通的头部字段,其中还有很多没有字段没有体现,有些字段稍微的变化甚至会影响整个payload的样貌,具体更多HTTP头部的介绍可以参考官网的文档:RFC2068、RFC2616、RFC7230、RFC7540等等。

    这里举例过WAF的用的是2个HTTP的头参数:Transfer-Encoding、Content-Type等


    0x02 Transfer-Encoding
    分块传输编码(Chunked transfer encoding)是超文本传输协议(HTTP)中的一种数据传输机制,允许HTTP由网页服务器(客户端)发送给客户端的数据可以分成多个部分。利用点就是把我们攻击代码进行分块传输,WAF不能直接规则匹配到。数据到服务端后会自动根据http头获知是chunked的会自动组合来进行后续的资源响应。

    类似于(如图):

    QQ截图20190830121937.png
    0x03 Content-Type
    这个参数平时查看HTTP头部的时候 肯定都看到多。其实在这个头部的参数里还有个参数:charset 。这个值平时我们看到是没有后面的值,默认是utf-8,没有显示的。其实它还有很多很多的编码。这个参数的含义是给内容进行编码。试想下你客户端提交的数据是不常用的编码且服务端的容器是支持的话,WAF可能不会包含所有的编码还自动解码在判断在编码发给服务端的。这样就达到一个绕过WAF的一种手段。

    如图():

    QQ截图20190830122018.png
    由于本次测试的环境是:2008+IIS7 IIS支持的编码有:IBM037, IBM500, IBM870, cp875, IBM1026, IBM01047, IBM01140, IBM01141, IBM01142, IBM01143, IBM01144, IBM01145, IBM01146, IBM01147, IBM01148, IBM01149, utf-16, unicodeFFFE, utf-32, utf-32BE, IBM273, IBM277, IBM278, IBM280, IBM284, IBM285, IBM290, IBM297, IBM420,IBM423, IBM424, xEBCDIC-KoreanExtended, IBM-Thai, IBM871, IBM880, IBM905, IBM00924, cp1025

    脚本编写选择用的编码是:ibm037

    0x04 编写sqlmap tamper过WAF脚本
    1.首先是编写chunked 分块传输的编码,根据协议的标准,把数据进行每行分块的传输,我这里设置分块的大小是2。即2个字符就分块。

    如图:

    QQ截图20190830122053.png
    2 然后就是charset自动编码的代码。功能简单,就是把payload全部进行指定的编码进行编码。如图:
    QQ截图20190830122113.png
    3.sqlmap tamper的修改。因为修改了2个HTTP头部参数,需要在tamper中制定头部中添加一个分块传输,以及指定编码。

    如图:
    QQ截图20190830122132.png

    这里最折腾我就是我明明代码指明了要分快传输头部chunked, 但是实际发包却没有。。。一直没有找到原因。如果哪位老哥知道我错在哪里,请教我一招。。3q

    我的解决办法就是直接执行sqlmap的时候强制加上头部:--headers="Transfer-Encoding: chunked"。然后坑又来了,我加上头部后使用proxy=http://127.0.0.1:8080 发现发包不出去,没有数据通讯(折腾了好久。。)主要是通过BP来看看数据包,这样比较直观数据发送是否正常、样貌方便各位看的明白舒服。后来就只能使用wireshark来跟数据给大家展示。

    0x05 动态效果
    动态图中参数增加了:--data "*" --dbms mssql --dbs --headers="Transfer-Encoding: chunked" --tamper 666666.py --skip-urlencode(不要url编码) 由于代码功底差,代码很乱。一般代码功能实现了,就懒得去优化了。不贴上来丢人了。原理就是这样,大佬们可造最优脚本。

    首先是撸安全狗的动态图:

    640.gif
    6401.gif
    6402.gif
    然后是D盾的动态图:
    640 3.gif
    6404.gif
    0x06 总结
    欠缺的还有很多,需要更加学习和实战






    上一篇:2019年8月30日签到记录贴
    下一篇:2019年8月31日签到记录贴
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    QQ|Archiver|手机版|小黑屋|腾龙技术论坛 ( 粤ICP备18109381号 )

    GMT+8, 2019-9-23 15:35 , Processed in 0.052295 second(s), 54 queries , Gzip On, Redis On.

    Powered by 腾龙技术论坛 X3.4

    © 2012-2018 腾龙技术论坛

    快速回复 返回顶部 返回列表
    {}