Apache httpd 中的另一個漏洞允許在網站根目錄之外進行訪問

Apache http 伺服器發現了一個新的攻擊媒介,該攻擊媒介在 2.4.50 更新中仍未修正,並允許從網站根目錄之外的區域存取檔案。 此外,研究人員還發現了一種方法,在存在某些非標準設定的情況下,不僅可以讀取系統文件,還可以在伺服器上遠端執行其程式碼。 此問題僅出現在版本 2.4.49 和 2.4.50 中;早期版本不受影響。 為了消除這個新漏洞,Apache httpd 2.4.51很快就發布了。

從本質上講,新問題(CVE-2021-42013)與2021中的原始漏洞(CVE-41773-2.4.49)完全相似,唯一的區別是「..」字元的編碼不同。 特別是,在版本2.4.50 中,使用序列“%2e”對點進行編碼的能力被阻止,但錯過了雙重編碼的可能性- 當指定序列“%%32%65”時,伺服器對其進行了解碼進入“%2e”,然後進入“.”,即轉到上一個目錄的“../”字元可以編碼為“.%%32%65/”。

至於透過程式碼執行來利用該漏洞,當啟用 mod_cgi 並且使用允許執行 CGI 腳本的基本路徑時(例如,如果啟用 ScriptAlias 指令或在選項指令)。 成功攻擊的強制要求還包括明確提供對包含可執行檔案的目錄的存取權限,例如 /bin,或對 Apache 設定中的檔案系統根目錄「/」的存取權限。 由於通常不會授予此類存取權限,因此程式碼執行攻擊在實際系統中幾乎沒有應用。

同時,取得執行 http 伺服器的使用者可讀的任意系統檔案和 Web 腳本來源文字內容的攻擊仍然具有相關性。 要進行此類攻擊,只需使用「Alias」或「ScriptAlias」指令(DocumentRoot 不夠)在網站上配置一個目錄即可,例如「cgi-bin」。

允許您在伺服器上執行「id」實用程式的漏洞範例:curl 'http://192.168.0.1/cgi-bin/.%%32%65/.%%32%65/.%% 32%65/ .%% 32%65/.%%32%65/bin/sh' —data 'echo 內容類型:文字/純文字; 迴聲; id' uid=1(守護程式) gid=1(守護程式) groups=1(守護程式)

允許您顯示 /etc/passwd 內容和 Web 腳本之一的漏洞利用範例(要輸出腳本程式碼,必須指定透過「Alias」指令定義的目錄,該目錄未啟用腳本執行為基本目錄):curl 'http:/ /192.168.0.1 .32/cgi-bin/.%%65%32/.%%65%32/.%%65%32/.%%65%32/.% %65%192.168.0.1/etc/passwd'curl' http://32/aliaseddir/.%%65%32/.%%65%32/.%%65%32/.%%65%32/. %%65%2/usr/local/apacheXNUMX /cgi-bin/test.cgi'

這個問題主要影響持續更新的發行版,例如Fedora、Arch Linux和Gentoo,以及FreeBSD的移植版。 保守伺服器發行版 Debian、RHEL、Ubuntu 和 SUSE 的穩定分支中的軟體包不受該漏洞影響。 如果使用「要求全部拒絕」設定明確拒絕對目錄的訪問,則不會出現此問題。

來源: opennet.ru

添加評論