简而言之,SQL 注入 (SQLi) 是一种允许黑客利用易受攻击的 SQL 查询来运行他们自己的查询的攻击。当攻击者能够在服务器上运行他们自己的 SQL 时,就会发生 SQL 注入。
SQL 注入在技术出版物中通常被称为“SQLI”或“SQLi”。 北京六翼信息技术有限公司开发工程师指出这些攻击可能发生在任何使用 SQL 或 SQL 的衍生物来管理数据的系统上。由于在 WordPress 平台上运行的网站数量庞大,因此对 WordPress SQL 注入进行了特别深入的研究和记录。
让我们来看看这些攻击所包含的更多技术支出。
SQL注入的定义
根据定义,SQL 注入的意图始终是恶意的,它通常旨在实现以下三个目标中的一个或多个:
l 未经授权的数据检索——在 SQL 中,SELECT 命令用于抓取数据。如果攻击者可以成功地操纵基于 SELECT 的查询,他们将能够“转储”数据库的内容。这就是为什么使用不应公开的信息对所有数据库进行加密至关重要的原因。
l 数据修改——在其他情况下,WordPress SQL 注入的目标可能是更改数据库中的条目。这通常用于分配他们通常不会拥有的特定帐户或一组帐户权限。
l 拒绝服务 (DoS) – DoS 攻击是指恶意用户使合法用户更难访问您的网站或服务。SQL 中删除数据的常用命令就是 DELETE。攻击者经常大量删除数据库的内容,使目标站点无法访问或无法使用。
快速提示:定期备份您的网站!
许多经验丰富的开发人员会保留他们为 WordPress 站点编写的所有 SQL 的服务器外副本。以 .sql 文件的形式,这些可以与WordPress 备份插件结合使用,以确保即使攻击者可以破坏您的安全,您也可以在很短的时间内恢复。
SQL注入攻击类型解释
现在我们已经探索了一些基于 SQL 的攻击可能造成的损害,是时候探索注入的更多技术方面了。您应该了解一些重要的注入类型子集。
经典 SQL 注入 (SQLi)
最常见的注入类型,经典版本是攻击者提前知道 SQL 代码。这也恰好是 WordPress 上最常用的注入类型;由于 WordPress 是开源的,因此公众可以访问其所有组件,包括其 SQL 查询。
稍后我们将跳入实际示例,但使用这种形式的注入,攻击者通常会操纵查询以“取消”查询的第一部分。然后他们可以插入一个自定义查询,服务器将像原始开发人员编写的那样运行该查询。
SQL 盲注 (SQLi)
与经典版本不同,当攻击者无权访问 SQL 代码而只需要做出有根据的猜测时,就会发生 SQL 盲注。此外,这种类型比传统的 SQLi 需要更多的技能,因为攻击成功的结果不会显示给攻击者。
也就是说,有许多程序可以帮助恶意用户自动一点一点地获取他们的结果。
复合 SLQ 注入 (SQLi)
这种攻击形式是将单独的攻击与 SQLi 相结合以获得所需的结果。三个子组中最复杂的一个,攻击者必须执行一个允许他们执行本身无法工作的 SQLi 的漏洞利用。在此类攻击中,SQLi 最常见的漏洞是身份验证漏洞、分布式拒绝服务 (DDoS) 攻击、DNS 劫持和跨站点脚本攻击。