什麼是文件包含和任意代碼執行? - 醫療保健

已發表: 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)。 看一看。