盲的SQL注射是一个亚型 SQL注入 漏洞。利用盲目的SQL注入对于攻击者来说更困难,更耗时,但对Web应用程序安全性的后果类似。成功利用数据库查询语言为攻击者控制数据库服务器。反过来,这可能导致敏感的数据被盗(例如,信用卡号),甚至使用权限升级完成Web服务器操作系统接管。

在经典SQL注入的情况下,攻击者可能会看到数据库错误或直接查看Web应用程序中注入的恶意SQL命令的输出。在盲目SQL注入的情况下,它们永远不会看到SQL语句的输出,但它们可以看到应用程序或页面是否正确加载,并查看SQL Server处理它们在用户中传递的SQL查询需要多长时间输入。

有两种类型的 盲目SQL注射:基于内容的盲SQL注入和基于时间的盲SQL注入。在基于内容的盲SQLI的情况下,攻击者分析用户提供的输入是否导致页面以不同地加载。在基于时间的盲SQLI的情况下,攻击者注入导致延迟的SQL命令(例如, SLEEP)并在延迟显示页面时看到。

预防技术

您应该使用的技术来防止盲目SQL注入是您应该用于防止任何SQL注入的技术。通常,盲目SQL注入是开发人员试图严重保护网站的结果,通常是对SQL注射的。例如,如果关闭错误报告,则经典的SQL注入漏洞可能成为盲的SQL注入漏洞。

保护自己:

  • 使用安全编码实践,独立于语言。所有常见的Web开发平台(包括课程PHP,Java和ASP.NET,还包括Ruby或Python)具有您可以使用的机制来避免SQL注入漏洞,包括盲SQL注入。避免所有成本的动态SQL。最佳选择是使用也称为参数化查询的准备陈述。您还可以使用存储过程如果您的SQL数据库支持它们(大多数数据库,例如,MySQL,Oracle,MS SQL Server,PostgreSQL)。此外,对于所有输入字段和其他用户数据输入,您可能会过滤和转义用于基本SQL注入的单个报价)。然而,筛选和逃避自己的逃脱是不够的。
  • 用一个 漏洞扫描仪 这可以检测SQL注入和盲SQL注入漏洞。运行常规扫描以确定可能未按上述或其预防的任何新错误,或者可能引入前进的任何新错误。包括软件开发生命周期(SDLC)中的安全扫描,以便尽早捕获漏洞。

资源: //www.acunetix.com/blog/articles/blind-sql-injection/