壓縮的 EXE 文件對 Linux 伺服器無害嗎?
我在我的網站上執行了一個惡意軟體掃描程序,它將一堆壓縮的 EXE 文件標記為潛在的風險文件(這些文件是由使用者上傳的)。由於我能夠在我的 Mac 上解壓縮文件,我假設這些是真正的 ZIP 文件,而不僅僅是重命名的 PHP 文件。
所以 ZIP 文件不應該對我的網路伺服器有任何風險,對吧?
如果它們確實是壓縮的 Windows exe 文件,它們應該對你的 Linux 系統無害,除非你有類似 Wine 之類的東西可以嘗試執行它們。
但是,如果它們在您的網路路徑中,它們可能是惡意軟體,並對您網站的訪問者構成巨大風險(反過來,如果您最終被標記為惡意軟體來源,並且使用者在嘗試訪問您的網站時會收到醜陋的警告)地點)。
由於我能夠解壓縮我的 mac 上的文件,我假設這些是真正的 zip 文件,而不僅僅是重命名的 php 文件。
雖然在這種情況下您可能是對的,但您的假設可能並不總是成立。即使您在 ZIP 存檔中添加任意數據,它仍然有效,因此很有可能創建一個文件,該文件同時是一個有效的 ZIP 存檔,其中包含無害數據和惡意 PHP 腳本。這甚至不是特別難。只需連接 PHP 程式碼和 ZIP 文件,並確保(例如使用
__halt_compiler()
)PHP 不會嘗試解析附加的 ZIP 存檔數據。這個技巧被合法地用於創建自解壓 ZIP 文件,但完全有可能以相同的方式將任何其他隱藏數據或可執行程式碼添加到 ZIP 文件中。某些程序可能會拒絕打開此類修改過的 ZIP 文件(但如果是這樣,它們在技術上違反了 ZIP 格式規範),或者預設情況下它們可能會將文件辨識為 ZIP 文件以外的其他文件,但通常,如果您提供這樣的文件轉換為需要 ZIP 文件的程式碼,它可能會被接受為一個。
此類技巧的更常見惡意使用是將基於 ZIP 的容器(例如 JAR 文件)中的漏洞利用程式碼偽裝成無害的東西(例如 GIF 圖像,如GIFAR漏洞利用中的),但沒有理由不能這樣做也用於另一個方向,例如繞過一個禁止上傳 PHP 腳本但允許 ZIP 文件的簡單文件上傳過濾器,而不檢查上傳的文件是否可能同時存在。