首页 > 数据库 > mysql教程 > SQL注入系列部分:高级SQL注入技术

SQL注入系列部分:高级SQL注入技术

Mary-Kate Olsen
发布: 2024-12-05 20:16:11
原创
993 人浏览过

Part SQL Injection Series: Advanced SQL Injection Techniques

作者:Trix Cyrus

Waymap渗透测试工具:点击这里
TrixSec Github:点击这里
TrixSec Telegram:点击此处

高级 SQL 注入漏洞 - 第 7 部分:尖端技术和预防

欢迎来到我们的 SQL 注入系列的第 7 部分!本期文章深入研究了攻击者使用的高级 SQL 注入技术,并提供了可操作的策略来应对它们。随着威胁的演变,了解这些复杂的方法对于保持领先地位至关重要。


1.高级 SQL 注入技术

1.1。带外 SQL 注入

当攻击者无法直接观察其有效负载的结果时,会使用带外(OOB)注入。相反,他们依靠 DNS 或 HTTP 请求来窃取数据。

  • 如何运作: 有效负载触发一个查询,将数据发送到攻击者控制的服务器。例如:
  SELECT * FROM users WHERE>



<p>The above payload exploits SQL Server's xp_dirtree to make an outbound DNS request.  </p>

登录后复制
登录后复制
  • Real-World Example:

    In 2019, attackers used OOB techniques to bypass traditional defenses and exfiltrate sensitive data from a government database.

  • Mitigation:

    • Block outbound DNS/HTTP requests from the database.
    • Use network monitoring tools to detect unusual outbound traffic.

1.2. Boolean-Based Blind SQL Injection

This method determines true or false conditions based on subtle changes in the application's behavior.

  • Example Payload:
  ' AND 1=1 -- True condition  
  ' AND 1=2 -- False condition  
登录后复制
登录后复制

响应差异表明注入条件是真还是假。

  • 用法

    攻击者使用条件查询一次一点地枚举数据库、表或列。

  • 缓解

    • 使用参数化查询或 ORM 框架。
    • 部署具有用于盲 SQL 注入检测的规则集的 Web 应用程序防火墙 (WAF)。

1.3。基于时间的 SQL 盲注

该技术使用延迟来推断数据。攻击者观察服务器响应需要多长时间。

  • 有效负载示例
  SELECT IF(1=1, SLEEP(5), 0); -- Delays response by 5 seconds  
登录后复制
登录后复制
  • 影响

    缓慢的查询可能会削弱服务器性能,导致拒绝服务。

  • 缓解

    • 使用速率限制来阻止过多的请求。
    • 监视并终止长时间运行的查询。

1.4。二阶 SQL 注入

在这种技术中,恶意有效负载存储在数据库中,并在后续操作(例如管理员审核)期间触发。

  • 示例场景

    • 攻击者将此有效负载插入到表单中:
    Robert'); DROP TABLE users; --  
    
    登录后复制
    登录后复制
    • 在审核期间,应用程序执行存储的有效负载。
  • 缓解

    • 在每个阶段转义和清理输入,甚至在检索期间。
    • 使用不可变的数据库函数来防止恶意脚本的执行。

2.真实世界案例研究

案例研究 1:Magento 漏洞 (CVE-2019-8144)

事件

  • 攻击者利用了 Magento 电子商务平台中基于时间的 SQL 注入漏洞。
  • 他们绕过了身份验证并获得了敏感客户数据的访问权限。

缓解教训

  • 定期修补软件以解决已知漏洞。
  • 对第三方插件和扩展执行安全测试。

案例研究 2:Shopify(2020 年错误赏金)

事件

  • 安全研究人员在 Shopify 的 API 中发现了 OOB SQL 注入漏洞,该漏洞可能会通过 DNS 泄露敏感数据。
  • 由于 Shopify 的错误赏金计划,该漏洞在被利用之前就已被捕获。

缓解教训

  • 投资错误赏金计划以鼓励道德漏洞报告。
  • 利用 API 网关强制执行严格的查询验证。

3.高级防御策略

3.1。动态查询分析

使用工具来监视数据库查询是否存在异常模式或过度复杂性。

  • 工具
    • SQLMap:测试您的系统。
    • Aqua Security 或 Imperva:用于运行时保护。

3.2。上下文感知验证

根据上下文强制执行验证规则:

  • 登录页面:验证凭据以仅允许字母数字值。
  • 搜索表单:清理输入以排除 SELECT 或 UNION 等 SQL 运算符。

3.3。数据库特定配置

  • 在MySQL中启用SQL注入检测模式等功能。
  • 在 PostgreSQL 中使用 SECCOMP 过滤器来限制危险操作。

3.4。持续渗透测试

  • 模拟攻击以在攻击者之前识别漏洞。
  • 使用 OWASP ZAP 或 Burp Suite 等工具通过 CI/CD 管道实现自动化。

4.实际挑战:漏洞利用模拟与防御

场景

电子商务网站允许用户使用输入字段搜索产品。测试并保护它。

步骤

  1. 注入有效负载以检测SQL注入漏洞:
  SELECT * FROM users WHERE>



<p>The above payload exploits SQL Server's xp_dirtree to make an outbound DNS request.  </p>

登录后复制
登录后复制
  • Real-World Example:

    In 2019, attackers used OOB techniques to bypass traditional defenses and exfiltrate sensitive data from a government database.

  • Mitigation:

    • Block outbound DNS/HTTP requests from the database.
    • Use network monitoring tools to detect unusual outbound traffic.

1.2. Boolean-Based Blind SQL Injection

This method determines true or false conditions based on subtle changes in the application's behavior.

  • Example Payload:
  ' AND 1=1 -- True condition  
  ' AND 1=2 -- False condition  
登录后复制
登录后复制
  1. 如果站点存在漏洞,请使用 SQLMap 等自动化工具来模拟数据提取。

防御修复

  • 实施准备好的语句:
  SELECT IF(1=1, SLEEP(5), 0); -- Delays response by 5 seconds  
登录后复制
登录后复制
  • 使用严格的模式验证输入:
Robert'); DROP TABLE users; --  
登录后复制
登录后复制

5. SQL注入攻击的趋势

5.1。云漏洞

由于配置错误,基于云的数据库越来越成为攻击目标。

5.2。 API 漏洞

随着微服务的兴起,设计不良的 API 成为攻击者的切入点。

5.3。人工智能驱动的攻击

自动化工具利用人工智能来制作复杂的注入有效负载。


最后的想法

本次高级会议强调了 SQL 注入的不断发展的性质以及主动防御的重要性。通过了解尖端技术并实施强大的安全措施,您可以显着降低被利用的风险。

~Trixsec

以上是SQL注入系列部分:高级SQL注入技术的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:dev.to
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板