我看到很多人说他们的网站被黑客利用了一些漏洞。我从来没有完全理解这意味着什么。
对我来说,获得网站控制权的唯一方法是获取 FTP 详细信息。
所以,我认为黑客攻击意味着其他人以某种方式获得了 FTP 详细信息。这个对吗?
我看到很多人说他们的网站被黑客利用了一些漏洞。我从来没有完全理解这意味着什么。
对我来说,获得网站控制权的唯一方法是获取 FTP 详细信息。
所以,我认为黑客攻击意味着其他人以某种方式获得了 FTP 详细信息。这个对吗?
这是一个非常广泛的问题。“被黑”这个词不是很具有描述性;技术人员更有可能具体描述发生了什么。通常“我的网站已被黑客入侵”用于表示“我的网站/网络服务器正在做坏事/不受欢迎/令人惊讶的事情”。
以下是可能发生这种情况的一些方法:
攻击者获得对 Web 服务器(操作系统或 Web 服务器应用程序本身)的访问权限。这可以通过猜测或窃取服务器管理员使用的各种凭据(FTP、SSH、SQL 等)来实现。
攻击者操纵现有网页,使其做一些意想不到的事情。这可能是通过SQL 注入或跨站点脚本漏洞等方法。在Open Web Application Security Project (OWASP)中查看更详细的列表
Web 服务器运行正常,但用户或管理员不了解它在做什么,并认为它已被“黑客入侵”。2006年,CentOS受到一名城市经理的“向 FBI 正式投诉”的威胁,他误将 Apache Web Server 配置页面误认为是一次成功的黑客攻击。
如果您有任何不明白的地方,请澄清或提出更多问题。这是一个非常广泛的话题!
当与对网站的攻击相关时,术语“被黑客攻击”可以具有多种不同的含义。让我们关注几种“黑客”的不同目标:
这是一个非常广泛的问题,但我会尽力简要介绍一下。
网站可以是一个非常复杂的软件。虽然许多站点可能是静态的,即仅提供纯 HTML 文档,但其中大量站点是动态的,即从脚本输出 HTML 内容,该脚本可能访问数据库资源或文件。这些通常是用 PHP 或 ASP.NET 编写的,但还有许多其他技术。因此,其中一个脚本中的错误可能会让攻击者破坏服务器。
然而,我们已经超越了自己。服务器已经是一个极其复杂的系统——它包含硬件、固件和软件。硬件从外部来源(例如网络电缆或键盘)获取信号,并将它们转换为可以存储在 RAM 中并由系统软件处理的数据。转换过程和状态管理通常由直接在硬件外围设备上运行的一种特殊类型的软件处理,该软件称为固件。该固件有助于将传入的原始数据转换为系统软件所需的复杂结构。从那里,操作系统软件(例如内核)采用这些原始结构并为用户程序提供一个抽象层。这可能是另一套非常复杂的软件。最重要的是,
所有这些层都代表一个攻击面,这实质上意味着它们可能存在可能被攻击者利用的软件错误。最常受到攻击的层是用户程序,但它们都可能成为攻击目标。例如,网卡的固件可能会解码 802.11n wifi 协议,然后将数据转换为以太网帧。如果在网卡的固件中发现缺陷,则可能会通过 wifi 信号发送特制的数据包来导致设备发生故障。这可能会导致拒绝服务 (DoS) 条件,从而导致设备停止传输和接收数据。
操作系统是一个极其复杂的软件,它可能再次代表一个巨大的攻击面。如今,操作系统及其内核中的漏洞已不太常见,但它们仍然存在。一个很好的例子是MS08-067,它是 Windows 服务中的一个漏洞,允许远程攻击者发送包含可执行代码的特制数据包,并且该代码最终在服务器上运行。该代码可能会导致在系统上创建新用户(稍后可以通过远程桌面登录)或生成命令提示符并通过 TCP 连接将其传回给攻击者。这两种类型的攻击都会导致攻击者完全破坏服务器,而无需知道服务器本身或其 FTP 服务的凭据。
当然,这些类型的 bug 也会影响用户安装的服务,包括 Web 服务器软件本身(例如 Apache / IIS)和 FTP、SSH、VNC、SQL 等。这些服务中的任何一个都完全有可能远程执行代码错误、命令注入错误、拒绝服务错误、身份验证绕过错误等。使它们保持最新是至关重要的,因为这些错误经常被发现和修补。不使它们保持最新可能会导致攻击者使用错误来获得对系统的未经授权的访问。
最后,我们有实际的网站。如果您使用的是动态网站(称为Web 应用程序)) 通过 PHP 或 ASP.NET,您实际上是从用户那里获取 HTTP 请求,将该 HTTP 请求解析为 Web 应用程序可以理解的格式,根据请求执行操作,并输出一些内容。所有这些区域都可能存在错误,但最常见的区域是根据用户请求执行操作的部分。例如,我们可能会从 URL 中获取一个参数,并在 SQL 数据库查询中使用它来获取论坛帖子列表,然后以 HTML 格式输出结果。如果 SQL 查询操作写得不好,恶意用户可能会制作一个特殊格式的 URL,导致查询行为不同 - 例如返回所有用户记录而不是所有论坛帖子。这称为 SQL 注入。
另一个常见漏洞是不安全的直接对象引用错误,当 Web 应用程序没有正确控制对资源的访问时会发生这种错误。例如,您可能有一个用户有权访问的文档列表,其中数字 ID 被传递到显示文档的脚本中,例如document.php?id=123
. 虽然文档列表仅显示用户有权访问的文档,但用户可能会更改 URL 中的 ID 以直接引用他们不应访问的文档。如果不包括适当的检查,用户可能能够访问他们不应该能够访问的页面或操作。这可能会导致恶意用户能够更改其他用户的设置。
另外两个常见漏洞,跨站点脚本 (XSS) 和跨站点请求伪造 (CSRF),允许攻击者向合法用户发送特制链接到易受攻击的站点,最终执行一些 JavaScript 或在用户没想到的网站。这可能会导致他们的帐户或个人信息被盗。从这些收集到的信息中,攻击者可能能够以该用户身份登录,或执行他们不应该执行的其他操作。
存在许多其他类别的 Web 应用程序错误 - 远程文件包含 (RFI)、本地文件包含 (LFI)、无限制上传错误、会话 ID 泄漏/可预测性、不安全通信等。查看OWASP 前 10 名可能是个好主意以获得更全面的列表。
因此,总而言之,攻击者可以通过多种途径侵入网站,而 FTP 等服务只是其中的一小部分。
不,还有很多很多其他方式可以使网站受到损害。FTP 只是将数据获取到站点的众多方法之一。其他协议(例如 webdav 甚至 HTTP)可用于将文件传输到站点。此外,大多数网站都有一个数据库后端,用于存储有关网站内容的持久信息。您访问过的几乎每个博客、新闻站点、论坛、商店和搜索引擎都有一个数据库。
到目前为止,数据库是比实际访问文件更常见的攻击媒介。SQL 注入等技术可以允许将恶意命令发送到数据库,就好像它们是合法命令一样。这可能导致信息(如密码或密码哈希)泄露或导致添加信息,例如网站首页上的被黑消息。
其他技术攻击站点而不必攻击服务器本身。一种称为跨站点脚本的攻击通过查看他们可以向站点提交信息的方式来工作,这种方式会在最终用户的计算机上根据他们与合法站点的连接的权限或会话进行恶意操作相信。这通常是 Javascript 攻击,但可以使用其他向量。
更罕见的是,在运行站点运行的服务器的实际软件中可能存在漏洞,并且这些漏洞可用于获得访问权限以执行站点或服务器通常不应执行的操作。
总而言之,提到一个站点被黑客入侵仅仅意味着有人做了一些损害站点完整性的事情,这可能是许多不同的事情,其中获取 FTP 密码可能是最不常见的(尽管它仍然会发生)。