Apache HTTPd 2.4.49 路径穿越漏洞(CVE-2021-41773)复现

0x00 漏洞概述

2021年10月5日,Apache官方发布了一批漏洞信息,其中Apache HTTP Server路径穿越漏洞CVE-2021-41773。

满足条件:

  • 版本等于2.4.49
  • 穿越的目录允许被访问,比如配置了 Require all granted。(默认情况下是不允许的)


0x01环境搭建

使用docker搭建Apache HTTPd 2.4.49版本服务器:

Dockerfile

FROM vulhub/httpd:2.4.49
LABEL maintainer="phithon "
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-compose.yml

version: '2'
services:
apache:
  build: .
  ports:
  - "8080:80"

环境启动

docker-compose build
docker-compose up -d


0x02 漏洞复现

  • 访问靶机环境
    环境启动后,访问 your-ip:8080 即可看到Apache默认的It works!页面。



  • 文件读取复现

使用curl命令发送payload( icons 必须存在且可访问):



  • 命令执行复现

在服务端开启了cgi或cgid这两个mod的情况下,这个路径穿越漏洞将可以执行任意命令:



0x03修复建议

升级至官方 ..最新版本


更多渗透相关技术经验分享,学渗透来雨笋教育线上线下任你选择,就业进大厂!


请使用浏览器的分享功能分享到微信等