网络攻击指南的SQL注入

网络攻击指南的SQL注入

目前,大约有2 亿个活跃网站,其中很少有仅由互联网早期流行的静态 HTML 页面组成。大多数现代站点在复杂的 Web 应用程序和数据库的帮助下处理大量敏感数据。然而,我们很确定我们不会错,说许多网站所有者并不完全了解SQL 注入(或 SQLi)是什么。

网络攻击指南的SQL注入-美联科技

网络安全状况

现代网络安全环境是一个相当复杂的地方。网站攻击的范围比以往任何时候都更广,现在有超过60% 的世界人口在互联网上,目标的数量也是如此。作为网站所有者,您的首要任务应该是 Web 应用程序的安全性。您可能想听听一个名为OWASP的组织怎么说。OWASP 代表Open Web Application Security Project ,是一个由志愿者和专家组成的在线社区,专门帮助网站管理员保护他们的项目。

每年,OWASP 的专家都会对管理员需要注意的最普遍的威胁进行排名,并且在很长一段时间内,代码注入一直位居榜首。由于大多数现代网站使用的技术,SQLi 是迄今为止最流行的代码注入类型。据安全公司Akamai称,近三分之二的 Web 应用程序攻击涉及 SQL 注入。SQLi 肯定不是您应该低估的威胁,但是是什么让它如此独特?

什么是 SQL 注入?

当最终用户与网站交互时,他们会看到一组文本和媒体文件正在排列和显示在屏幕上。不过,幕后还有很多事情要做。基于用户的输入,Web 应用程序运行数据库查询以访问正确的资源并显示正确的内容。例如,在您输入登录凭据并点击Sign In后,Web 应用程序会获取您的用户名和密码并查询数据库以查看它们是否正确。如果是这种情况 - 您可以进入您的个人资料。

SQL (结构化查询语言的缩写)是促进这种通信的编程语言。Web 应用程序使用它根据用户输入生成数据库查询。在 SQL 注入场景中,攻击者修改 SQL 查询以接收来自数据库的特定响应。使用恶意查询,他们可以获得对敏感数据的未经授权的访问或损害您的系统完整性。

SQL 注入作为一种攻击媒介早在1998 年就被发现了, 但根据Acunetix的说法,大约 8% 的现代网站仍然容易受到它的攻击。此类网站的所有者最好改进他们的配置,因为成功的 SQLi 攻击会造成很大的破坏。

未经授权访问敏感信息(如登录凭据、支付详细信息和个人数据)可能会对任何在线业务造成灾难性影响。更重要的是,成功的 SQL 注入可以打开后门,从而促进针对整个组织的复杂攻击。

网络攻击指南的SQL注入-美联科技

SQL 注入是如何工作的?

与其他形式的网络犯罪不同,SQL 注入工具并非在地下黑客论坛和市场上免费提供。自动化流程的选项很少,攻击者需要相对较高的技术技能。至少,黑客必须了解 SQL 查询的工作原理。

首先,攻击者确定他们的目标。幸运的是,由于威胁如此广为人知,现代 Web 应用程序通常带有某种形式的内置 SQLi 保护。对于从头开始构建网站的开发人员,还有一些工具和行业最佳实践。

不幸的是,缺乏标准化和糟糕的补丁管理意味着 SQLi 易受攻击的网站仍然存在。现代漏洞扫描程序可以快速识别它们。

攻击者制作的查询取决于数据库的类型和数据库管理系统。下一步是对目标进行一些侦察。

最后,启动实际注入。一些 SQLi 攻击依赖于特定 HTTP 请求的更改,而在其他情况下,攻击者使用基于 Web 的表单(例如,登录页面或搜索栏)来修改 SQL 查询。

例如,黑客理论上可以使用网站的登录表单在不知道管理员密码的情况下获得管理员权限。这是它的工作原理。

通常,当管理员登录时,登录表单生成的 SQL 查询如下所示:

SELECT * FROM members WHERE username = 'admin' AND password = '[the admin password]'

如果攻击者将“ admin'- ”放入用户名字段并将密码字段留空,则查询将如下所示:

SELECT * FROM members WHERE username = 'admin'- ' AND password = ”

' –紧跟在管理员用户名之后会取消查询的其余部分,这意味着数据库根本不会检查密码字段中是否有任何内容。

相反,它将简单地将攻击者记录为管理员,这就是噩梦开始的地方......

SQL 注入的类型

根据它们产生的结果,您可以识别几种不同类型的 SQL 注入:

  • SQL 注入检查数据库——这通常是攻击者在确定可行目标后的待办事项清单上的第一步。他们使用精心设计的 SQL 查询来获取特定于数据库的信息,这有助于他们在接下来的攻击阶段。
  • SQL 注入检索隐藏数据——这种类型的注入揭示了攻击者无法访问的信息。例如,对 HTTP 请求的一次修改可以在易受 SQLi 攻击的电子商务网站上显示未列出的产品。
  • SQLi UNION 攻击——UNION SQL 运算符可用于在单个语句下组合多个 SQL 查询。因此,通过修改 SQL 查询,攻击者可以使 Web 应用程序从通常无法访问的数据库部分中抓取数据。这可能包括登录凭据。
  • 颠覆应用程序逻辑的 SQL 注入——干扰 Web 应用程序逻辑的能力为各种犯罪活动打开了大门。我们在上一节中概述的密码绕过技术就是此类攻击的一个示例。
  • SQL 盲注——SQL盲注更难实施,因为 SQL 查询结果在数据库的响应中不可见。但是,具有高级技术技能的攻击者可以使用这些攻击来触发带外网络交互并促进快速数据泄露。

如何防止 SQL 注入攻击?

SQL 注入让黑客有机会绕过身份验证、窃取、修改和破坏数据,运行任意代码,甚至获得对服务器的访问权限。通常,攻击速度很快,管理员通常不会意识到他们已经被击中,直到为时已晚。换句话说,您最好采取必要的步骤来防止 SQLi 攻击,而不是在黑客已经入侵您的站点后尝试将所有内容重新组合在一起。

不同的项目需要不同的预防技术。例如,使用内容管理系统(CMS) 构建网站的管理员不需要手动实施特定的反 SQLi 措施。CMS 开发人员负责确保及时修补漏洞。Тhe 网站所有者唯一需要考虑的是在所有更新发布后立即应用它们。

自定义编码网站管理员的工作更具挑战性。没有完全消除威胁的一劳永逸的措施清单。修补漏洞所需的确切步骤取决于您使用的编程语言、 SQL 数据库引擎以及您尝试修复的 SQL 漏洞的类型。

不过,您可以遵循一些提示来保护您的网站。

  • 执行定期安全审计——漏洞扫描器可以相对容易地检测到您站点中潜在的 SQLi 漏洞,您没有理由不使用它们。扫描越频繁——在为时已晚之前发现和修复 SQLi 漏洞的机会就越大。
  • 确保您已做好应对威胁的准备——如果您是维护大型网站的大型组织,从 QA 专家到开发负责人,每个人都需要了解 SQL 注入带来的危险。定期向您的员工通报新的潜在攻击也是确保他们采取适当措施的关键。
  • 清理所有输入——切勿直接使用任何输入,无论它来自经过身份验证的用户还是公共用户。您的 Web 应用程序还必须具有清理请求和删除潜在恶意代码元素的机制。
  • 使用久经考验的机制——有特定于语言的机制来保护应用程序免受 SQL 注入。做你的研究,看看哪些提供最好的保护。使用它们而不是手动开发自己的安全技术是一个更好的选择。
  • 随时了解最新信息并使用最新工具——SQLi 攻击不会停止发展,我们用于保护网站的机制也不会停止。如果您将您的网站隐藏在一项旧技术之后,您将面临严重的风险,使其容易受到最新的 SQL 注入攻击。
  • 部署 Web 应用程序防火墙——Web应用程序防火墙使用严格的规则来检查和过滤 HTTP 交换。它阻止显示 SQLi 模式的请求,是保护您的网站免受各种 Web 应用程序攻击的最简单方法之一。

您的托管服务提供商的角色

SQL 注入以 Web 应用程序为目标——严格来说,这不是您选择的托管公司的优先事项。然而,一个好的主机不仅仅是一个服务提供商。它是帮助您保持在线业务持续发展的合作伙伴,因此,它将尽一切努力确保您的网站得到尽可能好的保护。

例如,如果您的项目基于 CMS,您可能会拥有一键式安装程序。除了在几秒钟内设置 WordPress 等应用程序外,该工具还具有核心和附加组件的自动更新功能 。

这样,您就不会错过任何重要的安全补丁。一个好的主机将帮助您部署Web 应用程序防火墙,并且还将包括一个监控系统,该系统会扫描您的整个主机帐户以查找可疑行为,并在检测到错误时通知您。

结论

尽管 SQL 注入在 20 多年前首次出现,但威胁仍然与以往一样重要。2020 年 5 月,美国司法部指控一名黑客使用 SQL 注入窃取数千条信用卡详细信息和其他个人信息。几个月后,黑客利用 SQLi 攻击从在线图形资源网站 Freepik 窃取了超过800 万条记录。这是一个严重的威胁,但好消息是,多年来,安全专家已经了解了很多关于 SQL 注入的知识。基于这些知识,有许多工具和策略可以有效地阻止攻击。由您选择最方便的。

客户经理