允許訪問工作目錄外文件的 muhttpd HTTP 服務器中的漏洞

muhttpd HTTP 伺服器中已發現一個漏洞 (CVE-2022-31793),主要用於路由器和存取點,該漏洞允許未經身份驗證的攻擊者透過發送特製的 HTTP 請求來下載任意文件,只要訪問權限滿足HTTP 伺服器運作允許(在許多裝置上muhttpd 以root 身分運作)。 例如,攻擊者可以透過密碼、無線存取設定、提供者的連線參數和私鑰來存取檔案。

該問題是由於處理請求中的路徑時發生錯誤導致的,該路徑允許存取Web伺服器根目錄之外的檔案。 此攻擊歸結為在開頭指定除句點、斜線和問題之外的任何其他字元的路徑。 例如,要下載/etc/hosts文件,只需發送請求“GET a/etc/hosts”或“GET a/etc/hosts”(printf“GET b/etc/hosts\n\n” | nc server港口) 。

造成這種行為的原因是,請求的檔案是透過命令「open(&req->filename[1], O_RDONLY)」開啟的,並且事先執行了chdir()函數跳到根目錄。 網路伺服器指定 `&req->filename[1]` 會導致路徑的第一個字元被忽略(開發者原本希望第一個字元始終為 `/`)。因此,當請求 `GET /etc/hosts` 時,伺服器會嘗試開啟相對路徑 `etc/hosts` 下的檔案;但如果在路徑開頭指定任何其他字元(例如 `GET a/etc/hosts`),則會完整處理後續路徑。

這個問題從 muhttpd 的第一個版本開始就存在,並在 1.1.7 版本中修復。 在使用 muhttpd 的裝置中,SaskTel 和 Arris 路由器已被確認有此問題。 這個問題也可能影響 AT&T、Frontier 和 Windstream 製造的設備。 當僅限制內部網路存取 HTTP 連接埠時,可以使用「DNS 重新綁定」技術從外部網路進行攻擊,該技術允許使用者在瀏覽器中開啟某個頁面時發送 HTTP 請求至無法透過Internet 直接存取的網路端口。

來源: opennet.ru

為具有 DDoS 保護、VPS VDS 服務器的站點購買可靠的主機 🔥 購買具備 DDoS 防護的可靠網站寄存服務,包括 VPS 和 VDS 伺服器 | ProHoster