返回更新列表
已更新Aug 3, 2026

cve-2021-41773-source-code-analysis — 已更新!

一款基于Python的静态补丁分析工具,用于通过对比存在漏洞的Apache HTTP Server 2.4.49源码与已修复的2.4.51实现,研究CVE-2021-41773(Apache HTTP Server路径遍历)的根本原因及修复方案。

分享

Apache HTTP Server CVE-2021-41773 源代码分析

一个基于 Python 的静态补丁分析工具,用于通过对比存在漏洞的 Apache HTTP Server 2.4.49 源代码与已修补的 2.4.51 实现,研究 CVE-2021-41773(Apache HTTP Server 路径遍历) 的根本原因与修复措施。

该项目执行的是语义级源代码分析,而非简单的基于文本的差异比较。它从目标函数中提取结构信息,比较两个版本,推断与安全相关的变更,并生成专业的分析报告。


功能特性

  • 静态源代码分析
  • 使用花括号匹配进行函数提取
  • 漏洞版本与已修补版本之间的结构比较
  • 安全能力检测
  • 补丁推理引擎
  • Markdown 报告生成
  • JSON 报告生成
  • HTML 报告生成
  • 自动化 Docker 实验环境搭建
  • 环境验证工具

项目架构

Apache Source Code
        │
        ▼
 parser.py
        │
        ▼
 extractor.py
        │
        ▼
 comparator.py
        │
        ▼
 reasoning.py
        │
        ▼
 reports.py

项目结构

cve-2021-41773-source-code-analysis
│
├── docker
│   ├── apache249
│   │   ├── Dockerfile              # Builds Apache HTTP Server 2.4.49 container
│   │   └── docker-compose.yml      # Starts vulnerable Apache container
│   │
│   └── apache251
│       ├── Dockerfile              # Builds Apache HTTP Server 2.4.51 container
│       └── docker-compose.yml      # Starts patched Apache container
│
├── labs                            # Stores downloaded Apache source code
│
├── references
│   └── resources.md                # Reference material for CVE research
│
├── scripts
│   ├── patch_analysis
│   │   ├── __init__.py             # Initializes the analysis package
│   │   ├── parser.py               # Extracts target C functions from Apache source
│   │   ├── extractor.py            # Extracts variables, calls, conditions and security capabilities
│   │   ├── comparator.py           # Compares vulnerable and patched function structures
│   │   ├── reasoning.py            # Performs security reasoning on detected changes
│   │   ├── reports.py              # Coordinates report generation
│   │   ├── markdown_report.py      # Generates Markdown analysis report
│   │   ├── json_report.py          # Generates JSON analysis report
│   │   └── html_report.py          # Generates HTML analysis report
│   │
│   ├── analyze_patch.py            # Main entry point for patch analysis
│   ├── verify_lab.py               # Verifies Docker lab configuration
│   └── debug.py                    # Displays raw comparison output for debugging
│
├── analysis                        # Generated analysis reports
│
├── setup.sh                        # Automatically prepares the complete lab
│
├── LICENSE
└── README.md

环境要求

  • Python 3.10+
  • Docker
  • Docker Compose
  • Bash
  • Linux(已在 Kali Linux 上测试)

安装

克隆仓库

git clone https://github.com/KunalKhandelwal-dev/cve-2021-41773-source-code-analysis.git

进入项目目录

cd cve-2021-41773-source-code-analysis

环境搭建

运行自动化搭建脚本。

sudo bash setup.sh

该搭建脚本会自动执行以下任务:

  • 检查所需工具
  • 验证 Docker 安装
  • 下载 Apache HTTP Server 2.4.49
  • 下载 Apache HTTP Server 2.4.51
  • 解压两个源代码树
  • 构建 Docker 镜像
  • 启动 Apache 容器
  • 创建分析环境

示例输出

[INFO] Checking required tools...
[SUCCESS] Required tools found.

[INFO] Checking Docker...
[SUCCESS] Docker is running.

[INFO] Downloading Apache HTTP Server 2.4.49...
[SUCCESS] Apache 2.4.49 downloaded.

[INFO] Downloading Apache HTTP Server 2.4.51...
[SUCCESS] Apache 2.4.51 downloaded.

[INFO] Building Docker images...
[SUCCESS] Docker images built.

[INFO] Starting Apache containers...
[SUCCESS] Containers started.

=========================================================
[SUCCESS] Apache CVE Lab Setup Complete
=========================================================

验证环境

运行

cd scripts

sudo python3 verify_lab.py

验证成功

image

验证工具会检查以下内容:

  • Docker 安装
  • Docker 守护进程
  • 正在运行的容器
  • Apache 版本
  • Apache 源代码
  • 目标函数
  • HTTP 服务
  • GDB 可用性

运行补丁分析

进入 scripts 目录。

cd scripts

运行

sudo python3 analyze_patch.py

示例输出

image

分析输出示例

Apache HTTP Server Patch Analysis Report

Security Findings

[MEDIUM]
Percent decoding introduced or modified

[MEDIUM]
Hexadecimal validation introduced or modified

[HIGH]
Directory traversal handling improved

[HIGH]
Path normalization pipeline updated

[CRITICAL]
Traversal protection strengthened

生成的报告

成功执行后,将生成以下报告:

analysis/
├── analysis.md
├── analysis.json
└── analysis.html

分析流程

Load Apache Source
        │
        ▼
Extract Target Function
        │
        ▼
Extract Structural Information
        │
        ▼
Compare Vulnerable vs Patched
        │
        ▼
Security Reasoning
        │
        ▼
Generate Reports

检测到的安全能力

  • 百分号编码/解码
  • 十六进制校验
  • 点段处理
  • 路径分隔符规范化
  • URI 规范化标志
  • 目录遍历防护

生成的发现

推理引擎可识别出以下安全改进:

  • 引入百分号解码
  • 引入十六进制校验
  • 改进了目录遍历处理
  • 更新了路径规范化
  • 加强了遍历防护

教育用途

本项目面向以下用途:

  • 安全研究人员
  • 学习 CVE 根因分析的学生
  • 安全软件工程
  • 静态源代码分析
  • 补丁差异分析
  • 漏洞研究

许可证

本项目基于 MIT 许可证发布。

作者

Kunal Khandelwal

B.Tech 计算机科学工程(网络安全)

安全研究 | 应用安全 | Docker | 源代码分析

分类