在渗透或安全测试过程中,总是会发现不少WAF的存在。有些是有意展示自己的存在,作为一种广告,如华为云WAF,CloudFlare之类,有些是开发者的意识懒惰或没时间。
检测WAF存在,一般是几种方法:
查看响应头部字段,是否有特征字段或不寻常字段或某些常见字段缺失
查看响应内容
尝试各种web攻击类型,和正常请求对比返回的状态码或返回内容。
尝试DOS攻击,超过一定次数后,看该IP的连接是否drop掉,再用另外一个IP查看,如果正常,说明触发了黑名单或CC防护。可以确认WAF存在
下面是业务常见的WAF特征:
360 Firewall:
拦截状态码是493
响应头部包含X-Powered-By-360WZB
拦截的返回内容
引用指向wangshan.360.cn
包含文本“Sorry! Your access has been intercepted because your links may threaten website security.”
阿里云盾:
拦截的状态码为405
拦截的返回内容
引用指向errors.aliyun.com
包含文本“Sorry, your request has been blocked as it may cause potential threats to the server's security”
AWS (Amazon):
拦截状态码为403
响应内容头部server包含”AWS“
百度云加速:server字段可能会为”Yunjiasu-nginx"或"Yunjiasu"
BitNinja: 拦截响应内容会包含“Security check by BitNinja”
思科ACE XML Gateway:server字段有“ACE XML Gateway"
Cloudflare:
响应头部:可能有cf-ray字段;server字段包含”cloudflare";Set-Cookie包含"__cfuid=".
响应内容:可能包含“Attention Required!”或“Cloudflare Ray ID:”;请求无效URL会有“CLOUDFLARE_ERROR_500S_BOX”返回
飞塔FortiWeb:
响应头部:在恶意请求返回情况会有“FORTIWAFSID=”
拦截返回的响应内容:会引用“.fgd_icon"图标;页面内容会有”Server Unavailable!“
华为云WAF:
拦截状态码为418
响应头部server为HuaweiCloudWAF
第一次响应"Set-Cookie"包含”HWWAFSESID“和”HWWAFSESTIME“
IBM DataPower:响应头部可能存在字段”X-Backside-Transport“,取值是”OK"或“FAIL"。
ModSecurity (Trustwave):
响应头部server可能会包含”Mod_Security“或”NYOB“
拦截的响应内容会包含”This error was generated by Mod_Security", "One or more things in your request were suspicious", "rules of the mod_security module", "Protected by Mod Security"
NAXSI (NBS Systems):
响应头部:server包含"naxsi/waf";可能存在“X-Data-Origin”字段,值包含“naxsi/waf"
响应内容:包含”This Request Has Been Blocked By NAXSI“
绿盟WAF:server字段包含”NSFocus“
OpenResty Lua WAF:
拦截状态码为406
响应头部:server包含”openresty/{version}"
拦截内容包含“openresty/{version}"
腾讯云WAF:
拦截状态码为405
拦截内容会指向waf.tencent-cloud.com
更多的WAF特征可以看一下sqlmap和wafw00f的代码。github上最新sqlmap代码,已经不包含了waf目录。
暗号:fhfuy