< 返回

什么是盲SQL注入?SQL盲注类型

2023-04-07 14:58 作者:joseph wu 阅读量:1611

您可能知道SQL 注入(SQLi) 攻击是最古老、最普遍和最致命的 Web 应用程序漏洞,并且可能知道如何防止利用 SQLi 漏洞的攻击。然而,尽管做出了这些努力,您的 Web 应用程序/网站可能仍容易受到 SQL 盲注(SQLi 漏洞的一种子类型)的攻击。在本文中,我们将深入探讨盲 SQLi 攻击、盲 SQL 注入类型以及如何预防它们。

什么是SQL,为什么它对公司很重要?

什么是盲 SQL 注入?

当后端数据库将攻击者输入的数据解释为 SQL 命令,而不是用户输入的正常数据时,就会发生盲 SQL 注入攻击。通常,攻击者会利用显示一般错误消息的 Web 应用程序,而不会缓解 SQLi 易受攻击的代码。攻击者向此类易受攻击的应用程序的后端数据库询问真假问题,并根据应用程序的响应确定是否存在 SQL 注入。

Blind SQLi 和经典 SQLi 之间的主要区别在于攻击者从后端数据库检索数据的方式。在经典的 SQLi 攻击中,攻击者可以在 Web 应用程序中看到数据库错误或恶意 SQLi 命令的输出。当数据库不显示错误消息或输出恶意命令时,攻击者通过向后端数据库询问一系列正确或错误的问题来窃取数据,并查看应用程序或页面是否正确加载,花费时间来处理 SQL查询或其他此类更改。盲注 SQL 注入耗时且难以利用,但并非不可能,并且会为攻击者产生类似的结果。

SQL 盲注类型

  • 基于内容的盲SQLi:在这里,攻击者分析页面加载方式的差异(如果有的话)或页面内容长度的变化;基于攻击者提供的输入

前任;

以下申请网址

http://www.example.com/item.php?id=2

这会将以下内容作为数据库中的请求发送。

从 ID = 2 的项目中选择标题、描述、正文

然后攻击者将以下内容作为查询注入;

http://www.example.com/item.php?id=2 和 1=2

结果 SQL 查询是这样的;

从 ID = 2 和 1=2 的项目中选择标题、描述、正文

上述查询将是一个错误的结果,因此应用程序将不会显示任何数据输出;而在注入真实陈述时;该应用程序将显示一些数据。

通过比较收到的输出;可以断定存在 SQL 注入攻击,

  • 基于时间的盲SQLi:在这里,攻击者分析数据库是否在返回结果之前暂停了他/她指定的时间段

Microsoft SQL Server 使用“WAIT FOR DELAY '0:0:10''

PostgreSQL 使用 pg_sleep()

盲目 SQLi 攻击的影响

盲目 SQLi 攻击的影响类似于经典的 SQL 注入攻击。它使攻击者可以访问和控制后端数据库服务器。他们能

  • 数据库指纹识别:在使用基于时间的方法的情况下。这有助于数据库指纹识别,并且特定数据库有特定的时间延迟有效负载
  • 窃取敏感的客户和/或商业信息,例如信用卡号、客户/员工的个人信息、专利、IP 等。
  • 从数据库中读取、添加、更新或删除数据或表,或执行管理命令。
  • 获得特权升级,使他们能够完全控制服务器/应用程序/操作系统。

防止盲目的 SQLi 攻击

需要注意的是,利用盲 SQLi 漏洞所需的技能和工具可能与经典 SQLi 漏洞有很大不同,但针对各种 SQL 注入的预防技术非常相似。很多时候,开发人员在保护 Web 应用程序免受经典 SQLi 漏洞攻击方面缺乏根据、考虑不周和努力薄弱会导致盲目的 SQLi 漏洞。例如,关闭错误报告。

确保安全编码实践

无论您使用什么语言,您使用的编码实践都必须与 OWASP 安全编码指南同步。大多数 Web 开发平台都提供了避免所有 SQL 注入的机制。使用参数化查询而不是动态查询(详情如下)。请记住实施来自所有用户输入字段(评论、联系表等)的特殊字符的白名单。并使用输入编码。

考虑使用数据库层访问 (DAL),因为它使您能够集中处理问题或对象关系映射 (ORM) 系统,因为它们仅使用参数化查询。无论哪种情况,都可以根据这些新库转换所有遗留代码。

使用参数化查询

不惜一切代价避免动态 SQL 查询,而是使用参数化查询。参数化查询是准备好的语句,使您能够有效且稳健地减轻盲目 SQL 注入。因此,找到所有动态 SQL 查询并将它们转换为参数化查询。

全面智能的安全扫描工具必备

使用全面且智能的安全扫描工具,定期扫描您的 Web 应用程序(从开发阶段开始)以识别可能导致 SQLi 攻击的新错误和漏洞。

加入托管且强大的安全解决方案

扫描只能识别差距和漏洞。为了保护您的 Web 应用程序免受这些攻击,需要保护和修补这些漏洞,直到它们被修复。加入强大的托管安全解决方案,如 AppTrana,它提供智能托管 WAF、定期安全审计、渗透测试和认证安全专家的服务,以确保您的应用程序始终安全,免受包括盲 SQLi 在内的漏洞的侵害。

联系我们
返回顶部