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

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

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

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

工具目录

分类

查看所有分类
Loading categories
工具/GitHubGitHub/infosec-db/cve-2026-60004-gitea-validator
侦察漏洞扫描器漏洞利用Web安全渗透测试
GitHubinfosec-db/cve-2026-60004-gitea-validator

CVE-2026-60004-Gitea-Validator

🫖 针对 Gitea CVE-2026-60004 的契约关联发现与授权验证工具

查看仓库

最受欢迎

查看全部 →

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

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享
11小时25分前尚未审核

🫖 CVE-2026-60004 Gitea 验证器

一个独立的发现、评估和合同关联验证工具,用于 Gitea diffpatch Git 钩子远程代码执行漏洞。

Python 3.10+ License: MIT CVE

scanner.py 为渗透测试人员、防御者和安全研究人员提供了一个零依赖的工具,用于:

  • 🔎 通过 LeakIX 现有索引进行被动 Gitea 发现
  • 🧭 单目标公共路由和 Swagger 侦察
  • 🩺 非破坏性版本评估
  • 🧪 受限的、经过认证的概念验证验证
  • 🧾 合同关联的 JSON 证据和命令输出捕获
  • 🛡️ 单目标控制、版本门控、私有输出文件和同源凭据处理

⚠️ 法律和道德免责声明

本项目仅用于授权的安全测试、防御性验证、研究和教育。仅对您拥有或获得明确书面许可评估的系统运行主动模式。您有责任遵守所有适用的法律、合同、交战规则和披露要求。

作者和贡献者不对滥用、损害、服务中断、数据丢失或法律后果负责。主动 PoC 以 Gitea 操作系统用户身份执行命令,并通过创建私有仓库改变服务器状态。请像对待任何其他 RCE 验证工具一样对待它。

🧠 漏洞摘要

CVE-2026-60004 影响 Gitea 的仓库 diffpatch 工作流。仓库写入者可以提交受控的补丁内容,在共享的裸临时克隆中安装 Git 钩子。应用两次精心构造的补丁会触发 add/add 冲突,并导致钩子以 Gitea 服务账户身份执行。

Forgejo 和其他分支不会自动被归类为易受攻击。必须独立审查其实现。

✨ 每种模式的作用

主动模式不接受目标列表或通配符。

📦 要求

  • Python 3.10 或更高版本
  • PATH 中可用的 Git
  • 可访问明确选择的 Gitea 目标的网络
  • 有效的 Gitea 凭据,或明确批准的自注册
  • 主动测试的书面授权/合同参考
  • 可选:用于 discover 的 LeakIX API 密钥

扫描器仅使用 Python 标准库。无需 pip install。

🚀 安装

root@kitploit:~
git clone https://github.com/InfoSec-DB/CVE-2026-60004-Gitea-Validator.git
cd CVE-2026-60004-Gitea-Validator
python3 scanner.py --help

🩺 从非破坏性检查开始

检查报告的版本

root@kitploit:~
python3 scanner.py verify \
  https://gitea.example \
  --contract-number ENG-2026-001 \
  --output evidence/version.json

盘点公共路由和 Swagger 元数据

root@kitploit:~
python3 scanner.py recon \
  https://gitea.example \
  --contract-number ENG-2026-001 \
  --output evidence/recon.json

版本检测是评估信号,不是可利用性的证明。反向移植补丁、自定义构建、反向代理和分支可能需要手动审查。

🧪 授权的主动确认

现有的已批准测试账户

通过将密码放入命令的环境中,避免密码出现在 shell 历史记录中:

root@kitploit:~
GITEA_PASSWORD='replace-with-approved-test-password' \
python3 scanner.py confirm \
  https://gitea.example \
  --contract-number ENG-2026-001 \
  --username audit-user \
  --execute-poc \
  --write-client-marker \
  --output evidence/confirmation.json

除非为自动化提供了 --yes-i-am-authorized,否则 confirm 会要求您输入合同约束的确认短语。默认远程命令是 id。

一次性自注册

仅在交战规则允许创建账户时使用:

root@kitploit:~
python3 scanner.py confirm \
  https://gitea.example \
  --contract-number ENG-2026-001 \
  --register-test-account \
  --credential-log evidence/credentials.txt \
  --execute-poc \
  --write-client-marker \
  --output evidence/confirmation.json

密码仅存储在私有凭据日志中,不会复制到 JSON 证据或终端结果面板中。

单命令测试配置文件

root@kitploit:~
python3 scanner.py test \
  https://gitea.example \
  --contract-number ENG-2026-001

🚨 test 是一个主动便捷命令。在启用注册的受影响目标上,它会自动创建账户和私有仓库,写入合同标记,运行 id,并将结果保存在 afterdark-results/ 下。它故意没有额外的交互提示,因此调用它即表示授权确认。

自定义命令

对于范围狭窄、明确批准的验证,confirm 和 test 接受 --cmd。在足够的情况下,优先使用默认的 id 配置文件。

root@kitploit:~
GITEA_PASSWORD='replace-with-approved-test-password' \
python3 scanner.py confirm \
  https://gitea.example \
  --contract-number ENG-2026-001 \
  --username audit-user \
  --execute-poc \
  --cmd 'uname -a' \
  --output evidence/confirmation.json

🌐 被动 LeakIX 发现

root@kitploit:~
export LEAKIX_API_KEY='replace-with-your-key'
python3 scanner.py discover \
  --method app \
  --pages 3 \
  --output evidence/leakix.json

在不联系已知主机的情况下检查该主机的 LeakIX 记录:

root@kitploit:~
python3 scanner.py discover \
  --method host \
  --target gitea.example \
  --pages 1 \
  --output evidence/leakix-host.json

发现结果是线索,不是扫描或利用所列系统的授权。

🔬 嵌入式 PoC 的工作原理

  1. 确认报告的产品/版本通过主动测试门控。
  2. 使用已批准的账户进行身份验证,或在明确请求时创建一个一次性账户。
  3. 创建一个唯一命名的私有仓库,并使用默认分支初始化。
  4. 构建一个添加可执行 hooks/post-index-change 文件的补丁。
  5. 将补丁提交两次到仓库 diffpatch API 端点。
  6. 钩子运行所选命令并将其组合输出写入 Git 对象。
  7. 临时 Git 客户端获取唯一的输出引用。
  8. 扫描器使用私有 0600 文件写入合同关联的证据,并拒绝覆盖现有证据。

经过身份验证的 HTTP 重定向仅限于所选目标源。Git 输出检索在授权标头激活时也会禁用重定向。

🧾 证据和敏感数据处理

主动运行可能产生:

  • confirmation.json — 时间戳、目标、账户名、版本评估、返回代码和捕获的输出
  • confirmation.command-output.txt — 完整的远程命令输出
  • credentials.txt — 生成的一次性账户密码(请求时)
  • embedded-result.txt 内容保留在 JSON 证据中

这些文件可能包含敏感的参与数据。它们被包含的 .gitignore 忽略,以模式 0600 创建,并应根据您的证据处理策略在静态时加密。

🧹 清理清单

该工具故意避免自动删除,以便证据可供审查。测试后,目标管理员应:

  • 删除生成的 audit-* 账户(如果创建了)
  • 删除生成的私有 afterdark-* 仓库
  • 删除可选的 /tmp/gitea-validation-*/client.txt 标记
  • 安全归档或删除本地凭据和证据
  • 将 Gitea 升级到 1.27.1 或更高版本
  • 仅重放确认修复所需的最少安全验证

成功的 PoC 执行证明以 Gitea 服务账户身份执行命令。它本身不证明 root 访问、持久性、横向移动或底层主机的入侵。

🛡️ 安全控制

  • 仅精确的单目标 URL;不支持通配符或目标文件
  • 合同编号包含在 User-Agent 和可选标记中
  • 主动版本门控阻止已知的已修补版本
  • 默认命令限于 id 或 whoami
  • confirm 需要显式的 --execute-poc 开关
  • 自注册是选择加入的,禁用时跳过
  • 经过身份验证的 HTTP 请求强制执行同源重定向
  • 凭据检索期间禁用 Git 重定向
  • 凭据通过内存/环境传递给子进程,然后从捕获的输出中删除
  • 私有、独占创建的证据文件;现有文件永远不会被覆盖
  • 180 秒子进程超时和有界输出捕获

✅ 运行测试

包含的测试是本地测试,不进行网络请求:

root@kitploit:~
python3 -m unittest discover -s tests -v

🤝 贡献

欢迎负责任的改进——尤其是兼容性修复、误报减少、证据质量改进和更安全的清理工作流。请不要提交真实目标详情、凭据、私有证据或武器化载荷。

对于此工具本身的安全问题,请遵循 SECURITY.md。

📚 参考和致谢

  • 官方 Gitea 公告:GHSA-rcr6-4jqh-j84m
  • Gitea 发布
  • 上游公告致谢的 CVE 报告者:NightRang3r
  • 验证器由 AfterDark 安全研究小组维护

为那些相信好的 PoC 应该是可复现、可归属且清理起来无聊的细心研究人员而制作。🛡️

下载工具
项目详情
产品Gitea
受影响版本>= 1.17.0, < 1.27.1
已修补版本1.27.1
影响以 Gitea 操作系统用户身份远程执行命令
所需访问权限仓库写入权限;开放注册可能允许攻击者创建它
公告GHSA-rcr6-4jqh-j84m
模式网络行为是否改变目标状态?目的
discover仅查询 LeakIX否搜索现有的第三方索引;不联系发现的主机
recon一个精确目标否盘点固定的公共路由和目标发布的 Swagger 文档
verify一个精确目标否读取 /api/v1/version 并分类报告的 Gitea 版本
test一个精确目标是便捷流程:版本门控、注册检查、一次性账户、标记、id 和证据
confirm一个精确目标是使用已批准的账户或明确的一次性注册进行受控确认