2024年,全球仍有超過270萬個網站運行Joomla。這個數字背后藏著一個反直覺的事實:其中近40%的站點,安裝著從未被啟用的擴展。
安全研究員Shamini Nirodya最近披露的案例,把這個問題捅破了。她在審計一套企業級Joomla系統時,發現了一款文件共享插件——沒人記得它為什么存在,也沒人負責維護它。
它就像租來的辦公室里,前任租客留下的備用鑰匙。你不知道它開哪扇門,但鎖匠知道。
被遺忘的代碼比漏洞更危險
Nirodya的排查從一次常規掃描開始。系統日志顯示,某個`/administrator/components/com_fileshare/`路徑下存在異常訪問請求。追溯后發現,這款插件在2021年被臨時安裝,用于一次跨部門文件傳輸項目。
項目結束后,沒人卸載它。更糟的是,它從未進入任何資產清單。
Joomla生態的殘酷現實是:核心系統有自動更新,但第三方擴展完全依賴管理員手動管理。官方擴展目錄(JED)收錄了超過3.7萬個插件,其中約15%已被標記為"停止維護"或"存在已知漏洞"。
這款文件共享插件的問題清單包括:未限制文件上傳類型、缺乏身份校驗的API端點、以及一個可繞過管理后臺的RCE(遠程代碼執行,Remote Code Execution)漏洞。CVE編號顯示,該漏洞在2022年就被公開披露,補丁發布于同年6月。
但補丁從未被應用——因為沒人知道這里還有個插件。
自動化攻擊的狩獵邏輯
Nirodya還原了攻擊者的行為路徑。這不是定向滲透,而是典型的"廣撒網"模式。
攻擊腳本首先批量掃描Joomla站點的特征指紋:特定的HTTP響應頭、默認路徑的元數據泄露、以及擴展目錄的公開接口。一旦匹配成功,腳本會交叉比對已知漏洞數據庫(如ExploitDB和CVE Details)。
整個過程不需要人工干預。從發現目標到嘗試利用,平均耗時不到4秒。
「如果端點存在,它就是攻擊面。」Nirodya在報告中寫道,「啟用狀態根本不重要。只要文件還在服務器上,URL還能響應,漏洞就活著。」
這款插件的RCE漏洞允許攻擊者通過構造特定的POST請求,在服務器任意路徑寫入WebShell。Nirodya的蜜罐捕獲到的攻擊載荷顯示,入侵者主要將其用作跳板:部署加密貨幣挖礦程序、植入反向代理工具,或進一步橫向移動至內網。
最諷刺的是,由于插件本身未被使用,它的異常流量從未觸發任何業務監控告警。
防御方的結構性盲區
這個案例暴露的不僅是技術漏洞,更是流程失效。
多數企業的Joomla站點采用"核心更新+擴展不管"的策略。安全團隊的注意力集中在活躍功能上,廢棄代碼被默認為"無害殘留"。但現代攻擊面管理(Attack Surface Management, ASM)的理念恰恰相反:任何未被清點的資產都是負債。
Nirodya建議的修復方案分為三層。第一層是清點:通過文件系統哈希比對或Joomla后臺的"擴展→管理"界面,識別所有已安裝組件,并與實際業務需求交叉驗證。第二層是隔離:對暫時無法卸載的遺留插件,至少通過.htaccess或Web應用防火墻(WAF)規則阻斷其端點訪問。
第三層最關鍵——建立擴展的生命周期臺賬。包括安裝時間、責任人、業務目的、以及退役計劃。這個流程在敏捷開發環境中常被犧牲,但代價往往由安全團隊事后承擔。
「我們花了兩周排查入侵源頭,」Nirodya引用一位客戶的反饋,「最后發現是個三年前就該刪掉的測試插件。攻擊者找到它只用了兩分鐘。」
你的代碼庫里,有多少個"從未啟用"的擴展還在自動回復HTTP 200?
特別聲明:以上內容(如有圖片或視頻亦包括在內)為自媒體平臺“網易號”用戶上傳并發布,本平臺僅提供信息存儲服務。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.