WAF如何识别以及绕过鉴权方式方法 以及指纹识【判断是否存在WAF】识别工具

发布于:2025-02-10 ⋅ 阅读:(41) ⋅ 点赞:(0)

目录

waf绕过和鉴权

WAF识别

1. HTTP头分析

2. 发送恶意请求

3. 延迟检测

4. 特定路径测试

5. 使用在线工具

6. 分析错误页面

7. SSL证书检查

检测技术

主流WAF指纹识别工具推荐

wafw00f 集成在kali中

主流waf工具

wafw00f 

identywaf 

sqlmap


waf绕过和鉴权

  • 过waf的手段 sql注入绕过waf
    • 在请求数据包中的数据 都需要过waf 这种都是可以在编码中绕过
    • 自己写绕过规则 在sqlmap tamper中写入自己的py文件
    • 加载自己的py文件规则 –tamper py文件 来加载自己的规则文件过waf

WAF识别

在请求中设置自己的cookie,例如:Citrix、Netscaler、Yunsuo WAF、safedog。
---------------------------------------------
在header中关联,例如:Anquanbao WAF、AmazonAWSWAF。
经常更改标头和混乱的字符以使攻击者感到困惑,例如:Netscaler、Big-IP。
---------------------------------------------
在服务器头数据包中暴露自己,例如: Approach、WTS WAF。
一些WAF在响应内容body中公开自身。例如:DotDefender、Armor、Sitelock。
---------------------------------------------
其他WAF会对恶意请求做出不寻常的响应代码答复。例如:WebKnight、360WAF。
---------------------------------------------
有些WAF会返回一堆垃圾数据。例如:百度云加速乐。  
其实总结起来就是 cookie header bady 都可能有waf的指纹信息
---------------------------------------------

1. HTTP头分析

  • 查看响应头:WAF通常会在HTTP响应头中添加特定字段

    • 例如:

      • Cloudflare的WAF会在响应头中包含Server: cloudflareCF-RAY字段。

  • 工具:使用浏览器开发者工具或curl命令查看响应头。

curl -I http://example.com

2. 发送恶意请求

  • 触发WAF:发送恶意请求(如SQL注入、XSS等),观察响应。

  • 响应码:WAF通常会返回403、406等错误码,或显示特定拦截页面。

  • 工具:使用sqlmap等工具测试。

sqlmap -u http://example.com/page?id=1

3. 延迟检测

  • 时间延迟:WAF可能会对可疑请求进行额外检查,导致响应时间变长。

  • 工具:使用time命令测量响应时间。

time curl -o /dev/null http://example.com

4. 特定路径测试

  • WAF管理界面:尝试访问常见的WAF管理路径(如/waf-admin/waf-login)。

  • 工具:使用dirbgobuster进行目录扫描。

gobuster dir -u http://example.com -w /path/to/wordlist.txt

5. 使用在线工具

  • WAF识别工具:使用如WAFW00F等工具自动检测WAF。

wafw00f http://example.com

6. 分析错误页面

  • 拦截页面:WAF通常会显示特定的拦截页面,包含WAF名称或标识。

  • 工具:使用浏览器或curl查看页面内容。

curl http://example.com

7. SSL证书检查

  • 证书信息:某些WAF(如Cloudflare)会使用自己的SSL证书。

  • 工具:使用openssl查看证书信息。

openssl s_client -connect example.com:443

检测技术

从浏览器发出普通的GET请求,拦截并记录响应头(特别是cookie)。

从命令行(例如curl)发出请求,并测试响应内容和标头(不包括user-agent)。

向随机开放的端口发出GET请求,并抓住可能暴露WAF身份的标语。

如果某处有登录页面,表单页面等.请尝试一些常见的(易于检测的)有效负载,例如 " or 1=1 -- -

将../../../etc/passwd附加到URL末尾的随机参数

在url的末尾添加一些吸引人的关键字,如'or sleep(5)‘

使用过时的协议(如http/0.9)发出get请求(http/0.9不支持post类型查询)。

很多时候,waf根据不同的交互类型改变服务器头。

删除操作技术-发送一个原始的fin/rst包到服务器并识别响应。

侧通道攻击-检查请求和响应内容的计时行为。  

主流WAF指纹识别工具推荐

  • wafw00f 集成在kali中


主流waf工具

wafw00f 

  • https://github.com/enablesecurity/wafw00f 

identywaf 

  • https://github.com/stamparm/identywaf

sqlmap

  • sqlmap检测waf:之前用这个参数: --identify-waf ,但是这个选项已经被废弃了
  • sqlmap源码:https://github.com/sqlmapproject/sqlmap但是新版的

  1. sqlmap已经集成了上面的identywaf 的源码

  2. 所以sqlmap的waf探测功能其实还是靠的identywaf 


喜欢本文的请动动小手点个赞,收藏一下,有问题请下方评论,转载请注明出处,并附有原文链接,谢谢!如有侵权,请及时联系。