网络安全各类WAF绕过技巧举例说明

Web应用防火墙(WAF)是一种用于保护Web应用免受各种攻击(如SQL注入、跨站脚本攻击等)的安全设备或服务。尽管WAF在很多情况下能有效防护Web应用,但其并非无懈可击,黑客有时可以通过多种技巧绕过WAF的检测。以下是一些常见的WAF绕过技巧的示例和详细说明:

1. 编码绕过

WAF通常会对请求的参数进行安全过滤和检查,但如果对输入内容进行编码,可能会绕过WAF的检测。

示例:
  • URL编码:攻击者可以通过对输入进行URL编码,例如把空格替换为%20,或者将其他特殊字符进行类似处理,从而绕过WAF的关键字匹配。
    • 输入:1=1
    • 编码后:1%3D1
  • Unicode编码:WAF可能无法处理所有形式的Unicode字符,攻击者可以通过Unicode编码字符来绕过WAF。
    • 输入:<script>alert('XSS')</script>
    • 编码后:%3Cscript%3Ealert%28%27XSS%27%29%3C/script%3E

2. 分割攻击

攻击者通过分割恶意payload,以便WAF无法在数据中检测到完整的攻击。

示例:
  • SQL注入分割:例如,攻击者可能通过插入SQL注入的部分和正常的SQL代码分割,使得WAF检测不到完整的注入攻击。
    • 输入:' OR 1=1 --
    • 分割后:' OR 1=1' --

3. 混淆关键字

攻击者可以通过混淆敏感的关键字,绕过WAF的规则。

示例:
  • 使用大小写混淆:很多WAF通过匹配敏感关键字来过滤请求,攻击者可以通过改变字母的大小写绕过这些规则。
    • 输入:<scriPt>alert('XSS')</scriPt>
  • 分词法:攻击者可以通过将关键字分成多个部分并插入一些无害的字符,来绕过WAF。
    • 输入:<scr"+"ipt>alert('XSS')</"+"scr"+"ipt>

4. 使用合法字符替代恶意字符

攻击者通过将一些恶意字符替换为WAF无法识别的合法字符,绕过WAF的检测。

示例:
  • 使用多种语法来绕过SQL注入过滤:例如,WAF可能会过滤SELECT关键字,但攻击者可以使用其他语法来代替。
    • 输入:UNION SELECT NULL, NULL, NULL
    • 改写后:UNION/*comment*/SELECT NULL,NULL,NULL

5. HTTP头注入

WAF通常检测HTTP请求中的常规内容(如URL、参数、Cookie等),但某些WAF并不总是检查HTTP头部的内容。攻击者可以利用这种漏洞进行攻击。

示例:
  • 通过User-Agent或Referer注入恶意代码:攻击者可以利用User-AgentReferer字段注入恶意代码,这些字段往往不被WAF严格检测。
    • 输入:User-Agent: <script>alert('XSS')</script>

6. 使用不同的HTTP方法

WAF通常仅检查常见的HTTP方法(如GET、POST),而忽视了其他方法。攻击者可能利用这些其他HTTP方法进行绕过。

示例:
  • 使用PUT或PATCH方法:某些WAF可能未对PUT或PATCH请求进行严格检查,攻击者可以通过这些方法上传恶意脚本或文件。
    • 请求:PUT /upload/malicious.php HTTP/1.1

7. Web Shell上传

一些WAF可以检测文件上传漏洞,但攻击者可以通过变通方法上传恶意Web Shell。

示例:
  • 文件后缀绕过:攻击者可能将PHP Web Shell伪装成图片文件上传(如.jpg.png),WAF检测不到文件内容,只对后缀名进行过滤。
    • 上传文件:shell.jpg,但文件内部仍然是PHP脚本。

8. 绕过WAF的时间延迟

某些攻击方法通过延迟响应的时间来绕过WAF的检测。这种方法通常用于反射型XSS和基于时间的盲注。

示例:
  • 基于时间的SQL注入:攻击者通过引入延时函数来测试是否能够绕过WAF的防御。例如使用SLEEP语句进行延时,WAF可能会忽略带有延时的请求。
    • 输入:1' AND SLEEP(5)--

9. 通过JavaScript执行攻击

WAF通常过滤常见的HTML和JavaScript注入,但某些JavaScript代码可以绕过这些过滤。

示例:
  • 事件处理程序绕过:攻击者可以利用JavaScript的事件处理程序(如onloadonmouseover等)来执行恶意代码。
    • 输入:<img src="x" onerror="alert('XSS')">

10. 混淆SQL查询

一些攻击者通过改变SQL查询的结构,使得WAF无法正确识别恶意查询。

示例:
  • 使用注释绕过:攻击者可以在SQL注入的代码中加入注释符号(--)来绕过WAF的检测。
    • 输入:' OR 1=1 --

总结

以上列举了常见的WAF绕过技巧,包括编码绕过、关键字混淆、HTTP头注入、文件上传绕过等。WAF虽然能有效提高Web应用的安全性,但随着攻击技术的发展,WAF绕过技术也不断得到创新。要增强Web应用的安全性,除了依赖WAF外,还需要结合其他安全措施,如输入验证、输出编码、及时更新安全补丁等,形成多层防御。

如果你对网络安全入门感兴趣,那么你需要的话

视频配套资料&国内外网安书籍、文档&工具

当然除了有配套的视频,同时也为大家整理了各种文档和书籍资料&工具,并且已经帮大家分好类了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值