识别漏洞

由于可能存在多个独立的黑客攻击,即使您能够找到并修复一个漏洞,我们仍建议继续搜索其他漏洞。首先阅读关于网站被垃圾邮件发送者入侵的主要方式的文章,开始您的调查。

您需要以下内容

  • 对您网站服务器(Web 服务器、数据库和文件服务器)的 Shell 或终端管理员访问权限
  • Shell 或终端命令的知识
  • 代码(如 PHP 或 JavaScript)的理解
  • 运行两个防病毒扫描程序的能力

后续操作

我们将介绍网站可能被入侵的几种常见方式。希望其中一种方式适用于您的网站,或者至少能启发您了解其他可能性。

请注意,漏洞扫描程序防病毒扫描程序不同。漏洞扫描程序可能更具侵入性,并且更有可能对您的网站造成不必要的损害。在运行扫描程序之前,请遵循所有指示,例如备份您的网站。

潜在漏洞 {potential-vulnerabilities}

要调查的潜在漏洞包括以下内容

感染病毒的管理员计算机

在管理员感染病毒的计算机上,黑客可能安装了间谍软件来记录网站管理员的击键。

  • 检查管理员系统上是否有病毒。 我们建议在每台管理员用于登录网站的计算机上运行几个信誉良好的防病毒 (AV) 扫描程序。由于新的恶意软件感染不断被设计为逃避扫描程序,因此这不是一种万无一失的病毒检测方法。运行多个扫描程序有助于避免误报,并提供更多数据点来确定是否存在漏洞。为了安全起见,还应考虑扫描您的 Web 服务器以及用于更新或发布到网站的所有设备。
    • 如果防病毒扫描程序检测到间谍软件、病毒、木马或任何其他可疑程序,请调查网站的服务器日志,以检查拥有受感染计算机的管理员的活动。
    • 黑客可能已更改日志文件。如果他们没有更改,将管理员的用户名与日志文件中的可疑命令相关联,可以进一步证明管理员系统上的病毒使网站容易受到攻击。

弱密码或重复使用的密码

弱密码很容易被黑客发现,从而使他们可以直接访问您的服务器。强密码是字母和数字、标点符号的组合,并且不包含字典中可能找到的单词或俚语。密码必须仅用于一个应用程序,而不能在整个 Web 中重复使用。当密码被重复使用时,黑客只需在一个应用程序上进行一次安全漏洞攻击,就可以找到他们可以在其他地方使用的登录名和密码。

在服务器日志中,检查是否有不良活动,例如管理员的多次登录尝试或管理员发出意外命令。记下可疑活动发生的时间,因为了解黑客攻击首次发生的时间有助于确定哪些备份可能仍然是干净的。

过时的软件

检查您的服务器是否已安装最新版本的操作系统、内容管理系统、博客平台、应用程序、插件以及网站使用的任何其他软件。

  • 研究所有已安装的软件(可能通过 Web 搜索)以确定您的版本是否包含安全公告。如果包含,则很可能是过时的软件使您的网站容易受到攻击。
  • 作为最佳实践,始终致力于保持服务器软件的最新状态,无论过时的软件是否导致了此特定漏洞问题。

4. 宽松的编码实践,例如开放重定向和 SQL 注入

开放重定向

开放重定向的编码意图是允许 URL 结构添加另一个 URL,以便用户可以访问网站上有用的文件或页面。例如

http://example.com/page.php?url=http://example.com/good-file.pdf

http://example.com/page.php?url=malware-attack-site>

  • 如果您的网站被开放重定向滥用,您可能会注意到 Search Console 中的消息提供了示例 URL,其中包含指向不良目标的开放重定向。
  • 为了防止将来出现开放重定向,请检查以下内容
    • 您的软件中是否默认开启“允许开放重定向”。
    • 您的代码是否可以禁止域外重定向。
    • 您是否可以对重定向进行签名,以便只有具有正确哈希 URL 和正确加密签名的重定向才能继续。

SQL 注入

当黑客能够将恶意命令添加到您的数据库执行的用户输入字段时,就会发生 SQL 注入。SQL 注入会使用不需要的垃圾邮件或恶意软件内容更新数据库中的记录,或者将有价值的数据转储到输出以供黑客使用。如果您的网站使用数据库,尤其是在您感染了恶意软件的情况下,则您的网站可能受到了 SQL 注入的破坏。

  • 登录到数据库服务器并在数据库中查找可疑内容,例如现在显示 iframe 或脚本的普通文本字段。
  • 对于可疑值,请检查用户输入是否已验证并正确转义,或者可能已强类型化,以便它们不能作为代码执行。如果在数据库处理之前未检查用户输入,则 SQL 注入可能是您网站上的根本原因漏洞。