什么是文件包含和任意代码执行? - 医疗保健

已发表: 2023-04-13

文件包含和任意代码执行:本月早些时候,一个基于 WordPress 的机票网站遭到黑客攻击,导致数十万访问者的个人数据暴露。 在之前关于黑客为何进行黑客攻击的帖子中,我们讨论了黑客进行黑客攻击的所有原因,包括窃取数据、发送垃圾邮件,他们甚至可能使用黑帽 SEO 技术对他们自己的产品进行排名(推荐阅读 – 制药黑客)等。

了解黑客如何入侵网站是防止他们入侵的关键,这就是为什么我们在较早的文章中列出了对 WordPress 网站进行的最常见的黑客攻击

当我们谈论常见的黑客攻击时,您很可能会想到暴力攻击。 但是您知道吗,文件包含和任意代码执行也是 WordPress 网站上最常见的黑客攻击之一。 在这篇文章中,我们将更深入地研究这些攻击,以便详细了解它们。

要了解这些攻击的工作原理,您首先必须知道它涉及 PHP 文件。你一定想知道为什么? 这是因为文件包含和任意代码执行攻击都涉及使用 PHP 文件。

但什么是 PHP 文件? 想想厨柜。 在橱柜内,有许多物品,如糖、盐、香料、器具等。这些物品中的每一个都有在厨房中使用的目的。PHP 文件是一个柜子,文件中的代码是能够执行黑客所需的某些功能的项目。这就是为什么黑客更喜欢上传 PHP 文件而不是任何其他文件(例如 JPEG 或 PDF 文件)的原因。 JPEG 和PDF 文件是不可执行的,即黑客不能使用这些文件执行任何功能。 人们只能阅读(即查看)它们。 它们不能用于对被黑网站进行任何更改。

在您的网站服务器上上传 PHP 文件的黑客可以使用它在您的网站上做任何事情。 这就是为什么使用 PHP 文件来运行文件包含和任意代码执行攻击。

什么是文件包含攻击?

理解像这样的复杂网站攻击的最好方法是举例说明真实场景。 假设您为您的机构运营一个网站,该网站名为 college.com。 您允许一些学生访问该站点,以便他们可以发布在最近的大学活动中拍摄的照片。 有人滥用您提供的访问权限并将恶意 PHP 文件(名为 hack.php)上传到该网站。 目标是控制大学网站。 当学生上传恶意 PHP 文件时,默认情况下它存储在 Upload 文件夹中。任何了解WordPress 基本结构的都知道上传文件的去向。

文件包含和任意代码执行
任何不是主题或插件的上传都存储在上传文件夹中。 了解 WordPress 结构的人都知道 Upload 文件夹在哪里。 对于那些不知道的人,这是上传文件夹所在的位置。 从虚拟主机 cPanel 打开文件管理器,然后转到 Public_html > wp-content > 上传。

该文件就像一扇门,使黑客能够远程与文件进行交互。 请注意,黑客仍然无法控制该站点,他们只有一个通信窗口。 为了更容易理解,想象一个人 A 想去一个不允许他去的国家。 所以他派了一个代理人 B。A 是黑客,国家代表大学网站,B 是 hack.php 文件。

上传到学院网站的PHP文件---->文件存放在网站服务器

B 只受过一些训练,只能做这么多。 因此,A 需要指示他下一步该做什么。 同样,PHP 文件会创建一个通信窗口,然后等待来自黑客的更多命令。

假设 hack.php 的创建方式允许将更多文件上传到网站。 黑客创建了一个文件(名为 control.php),他将使用网站服务器中已经存在的 hack.php 上传该文件。 新文件 control.php 将使黑客能够完全访问该网站。 他使用 hack.php 文件提供的窗口将 control.php 文件上传到站点。使用网站服务器上已存在的文件 (hack.php) 上传 control.php 文件的过程称为本地文件包含

本地文件执行的一个很好的例子是在 Easy Forms for MailChimp WordPress 插件 (v 6.0.5.5)上观察到的漏洞 使用 MailChimp 插件,网站所有者可以将不同类型的表单添加到他们的 WordPress 网站。 一个漏洞允许黑客使用 MailChimp 表单将 PHP 文件上传到网站服务器。一旦文件存储在网站服务器上,黑客就能够与他们通信并执行代码,使他们能够以多种方式控制服务器或破坏网站。

这是一个场景:学院网站安装了防火墙,因此黑客无法上传 control.php。 虽然他不能上传另一个单独的文件,但他可以“包含”一个文件。 这意味着他可以在学院网站服务器上已经存在的 hack.php 文件中插入一个文件。 如果黑客能够上传 control.php 文件,网站服务器将读取该文件并执行其中的代码,这将使黑客能够为所欲为。 但是因为他无法上传文件,他将不得不寻找其他方法让服务器读取 control.php 文件。 黑客创建的路径在网上可用,学院网站的服务器应该可以读取它。 因此,黑客创建了一个路径并使它们在线可用,以便大学网站服务器能够读取它。 然后服务器开始执行从路径获取的代码,由于代码的编写方式允许黑客完全控制站点,黑客现在控制了大学网站。 这个使服务器读取远程文件的过程称为远程文件包含。

文件包含和任意代码执行
演示 TimThumb 攻击如何发生的示例

TimThumb 漏洞案例是远程文件包含的一个流行示例。 TimThumb 是一个 WordPress 插件,允许在 WordPress 网站上轻松编辑图像。 它使任何人都可以使用从 imgur.com 和 flickr.com 等图像共享网站获取的图像。 TimThumb 将 imgur 识别为有效站点(或列入白名单)。 黑客利用此标准创建文件,其 URL 提及有效站点,例如 http://www.imgur.com.badsite.com。当他们上传带有我们上面提到的 URL 的恶意文件时,插件会误认为该文件来自有效网站。它允许将恶意文件上传到网站的服务器。 利用插件中的漏洞从网站服务器外部包含恶意文件的整个过程就是远程文件包含。 恶意PHP文件存储在网站服务器中后,黑客可以与其通信以执行他们想要的操作。

什么是任意代码执行攻击?

现在我们知道什么是远程和本地文件包含,让我们继续尝试了解什么是任意代码执行。 文件包含和任意代码包含是相互关联的。 在任何文件包含的情况下,黑客的目的是在网站上执行任意代码。 让我们回到本地文件包含的例子,黑客在学院网站上传了一个 hack.php,然后借助 hack.php 上传了 control.php。任意代码执行一词描述了黑客在被黑网站上执行他选择的任何命令的能力。一旦 PHP 文件(hack.php 和 control.php)在网站服务器上启动,黑客就可以执行他想要的任何代码。 从他上传的文件中执行任何代码的过程称为任意代码执行。
黑客很复杂。 在这篇文章中,我们试图将其解释得非常简单,但如果有部分对您来说没有意义,我们敦促读者写信给我们 在下一篇文章中,我们将讨论另一种针对 WordPress 网站的常见黑客攻击,称为跨站点脚本 (XSS)。 看一看。