基于 Docker 的 Apache mod_lua 实验环境,附带一个 Python PoC,用于复现 CVE-2021-44790 multipart 边界缓冲区溢出漏洞,供本地防御测试与研究使用。
本仓库包含一个小型本地实验环境及概念验证工具,用于复现被追踪为 CVE-2021-44790 的 Apache HTTP Server 漏洞。
CVE-2021-44790 是 Apache HTTP Server 2.4.51/2.4.52 中涉及 mod_lua 多部分请求解析器的漏洞。当边界由 Lua 处理器处理时,精心构造的多部分边界可触发服务器中的缓冲区溢出条件。
本实验环境仅用于学习、防御性测试以及在非生产环境中的受控本地复现。
CVE-2021-44790.py — 用于针对目标测试该漏洞的 Python PoC / 漏洞利用辅助工具。cve-2021-44790-lab/ — 复现易受攻击行为的 Docker 化 Apache + Lua 实验环境。
Dockerfilehttpd.conflua/upload.lua在仓库根目录下执行:
docker build -t cve-2021-44790-lab ./cve-2021-44790-lab
docker run --rm -it -p 80:80 cve-2021-44790-lab
该实验环境在以下地址暴露一个简单的上传端点:
http://127.0.0.1/upload
Apache 配置启用了易受攻击的 mod_lua 处理器,并设置了较大的请求体限制,以便可以将多部分负载发送到服务器。
针对目标运行 Python 脚本:
python CVE-2021-44790.py --help
示例:
python CVE-2021-44790.py --url http://127.0.0.1/upload --boundary-size 9000 --payload-size 10000000
该脚本支持以下选项:
本仓库中的材料仅供合法的安全研究、基于实验环境的测试以及漏洞教育使用。作者及贡献者不对代码的滥用或使用代码进行的任何破坏性活动负责。