Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
CVE-2021-41773 — CVE-2021-41773 Apache路径遍历与远程代码执行漏洞的详细分析,包含逐步命令和根本原因分析,源自TryHackMe实验室环境。 | Kitploit
工具/GitHubGitHub/johnwickakash12/cve-2021-41773
漏洞分析漏洞利用Web应用程序漏洞利用CTF学习与教育实验室与实践
GitHubjohnwickakash12/cve-2021-41773

CVE-2021-41773

CVE-2021-41773 Apache路径遍历与远程代码执行漏洞的详细分析,包含逐步命令和根本原因分析,源自TryHackMe实验室环境。

查看仓库
32个月前尚未审核

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

CVE-2021-41773 — Apache 路径遍历与 RCE 利用

关于 TryHackMe "Modern Web Stacks" 房间的 writeup,重点利用 CVE-2021-41773,这是 Apache HTTP Server 2.4.49 中的一个路径遍历漏洞,当 mod_cgi 启用时可导致远程代码执行。

概述

项目详情
漏洞CVE-2021-41773 — Apache 2.4.49 路径遍历 / RCE
目标服务端口 8080 上的 Apache HTTP Server
受影响版本Apache/2.4.49 (Unix)
根因ap_normalize_path() 中规范化顺序错误
影响任意文件读取 → 通过 mod_cgi 实现远程代码执行
使用工具curl

漏洞概述

Apache 2.4.49 改变了 ap_normalize_path() 处理 URL 的方式。Apache 本应在请求路径到达文件系统之前阻止任何包含 ../ 的路径——但遍历过滤器在完整 URL 解码之前运行。

这意味着使用双编码序列 .%2e/ 的请求不会被过滤器识别为 ../。然而,一旦 Apache 将路径交给操作系统,.%2e/ 被解析为 ../,而遍历过滤器已经被绕过。

仅此一项就允许在 Web 根目录之外进行任意文件读取。当与 mod_cgi 结合时,影响变得严重:如果遍历路径解析为 CGI 启用目录(例如 /cgi-bin/)内的可执行文件(如 /bin/sh),Apache 会将其作为 CGI 脚本执行,并将 HTTP POST 主体传递到其标准输入——从而获得远程命令执行。

步骤

1. 确认易受攻击的 Server 标头

确定目标的 Server 响应标头为:

root@kitploit:~
Apache/2.4.49 (Unix)

此版本直接受 CVE-2021-41773 影响。

2. 检查 /cgi-bin/ 可用性

请求 /cgi-bin/ 并收到 403 Forbidden 响应(而非 404),表明该目录存在且 mod_cgi 可能已启用——这是通过此 CVE 实现 RCE 的先决条件。

3. 利用路径遍历实现 RCE

使用带 --path-as-is 标志的 curl,按原样发送编码的遍历序列,避免 curl 在客户端侧先进行规范化:

root@kitploit:~
curl -s --path-as-is "http://<TARGET_IP>:8080/cgi-bin/.%2e/.%2e/.%2e/.%2e/bin/sh" \
  --data 'echo Content-Type: text/plain; echo; cat /flag.txt'

为什么需要 --path-as-is: 默认情况下,curl 会规范化 URL 并在发送请求之前剥离 .%2e/ 序列。--path-as-is 告诉 curl 按原样发送 URL,从而保留编码的遍历,使其完整到达服务器。

4. 读取 flag

该载荷从 /cgi-bin/ 遍历到根文件系统,通过注入的 POST 主体将 /bin/sh 作为 CGI 脚本执行,并返回 /flag.txt 的内容。

root@kitploit:~
Flag 格式确认:THM{...}

(根据 TryHackMe 关于公开 writeup 的指南,Flag 已被编辑。)

关键要点

  • 补丁顺序很重要。 在解码完成之前运行的安全过滤器可以轻易通过编码技巧绕过——这种确切的模式(先过滤再解码 vs 先解码再过滤)不仅出现在这一个漏洞中,还出现在许多遍历 CVE 中。
  • mod_cgi + 路径遍历 = RCE。 仅文件读取已经很糟糕;与 CGI 可执行目录结合后,就变成了命令执行。
  • 测试时要注意工具行为。 curl 的默认 URL 规范化可能会静默地“修正”你正要发送的确切载荷——在测试基于编码的绕过时,--path-as-is(或等效的原始请求工具)至关重要。

修复

  • 将 Apache 升级到 2.4.51 或更高版本(修复了 CVE-2021-41773 以及相关的 CVE-2021-42013)。
  • 除非明确需要,否则禁用 mod_cgi。
  • 对 Web 服务器进程应用最小权限原则,以限制任何文件读取原语的爆炸半径。

参考

  • CVE-2021-41773 — NVD
  • TryHackMe — Modern Web Stacks 房间

此 writeup 记录了实验室环境(TryHackMe)。未访问任何未授权系统。

下载工具