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

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

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

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

工具目录

分类

查看所有分类
Loading categories
CVE-2025-8110 — Python PoC 漏洞利用代码,针对 CVE-2025-8110,通过符号链接操纵和 API 滥用演示从任意文件写入到 Gogs 中的远程代码执行。专为教育安全研究和授权实验室环境设计。 | Kitploit
工具/GitHubGitHub/xdezen/cve-2025-8110
漏洞分析漏洞利用Web应用程序漏洞利用学习与教育Payload 开发实验室与实践
GitHubxdezen/cve-2025-8110

CVE-2025-8110

Python PoC 漏洞利用代码,针对 CVE-2025-8110,通过符号链接操纵和 API 滥用演示从任意文件写入到 Gogs 中的远程代码执行。专为教育安全研究和授权实验室环境设计。

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

最受欢迎

查看全部 →

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

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

Gogs 任意文件写入至远程代码执行漏洞 (CVE-2025-8110) - 教育用途的利用工具

此仓库包含一个 Python 概念验证(PoC)脚本,用于演示和分析在自托管的 Git 服务 Gogs(版本 0.13.3 及更早版本)中记录的漏洞 CVE-2025-8110。


⚠️ 免责声明(Disclaimer)

[!WARNING] 本软件仅供教育和安全研究目的使用。 未经所有者事先书面同意,将此材料用于目标是非法的。本仓库的作者不对因使用本代码造成的任何损害、损失或滥用负责。请自行承担风险,并仅在受控环境或授权的模拟(如 CTF 实验室)中使用。


什么是 CVE-2025-8110?

CVE-2025-8110 是一个严重的任意文件写入漏洞,由于在通过 Gogs 的 PutContents API 处理符号链接(symlinks)时验证不足而引发。

影响机制

一个经过身份验证的攻击者可以:

  1. 创建一个包含符号链接的本地 Git 仓库,该符号链接指向仓库文件夹之外的敏感文件(例如,服务器自身的配置文件 .git/config)。
  2. 将此仓库推送(push)到 Gogs 服务器。
  3. 使用 Gogs API 修改符号链接文件。由于 API 不验证目标是否为快捷方式,底层操作系统会跟随链接,以运行 Gogs 的权限覆盖系统文件。
  4. 如果 Gogs 服务以 root 身份运行,文件写入可以升级为远程代码执行(RCE),方法是将所需命令注入 Git 配置文件的 sshCommand 属性。

代码说明(exploit.py)

该脚本使用有效凭据和在 Gogs 网页界面中手动预先生成的 API 令牌来自动化整个利用过程:

root@kitploit:~
          ┌──────────────────────────────────────────────┐
          │          Máquina del Atacante (Kali)         │
          └──────────────────────┬───────────────────────┘
                                 │
         (1) Crea Repositorio    │ (3) Sube Symlink (.git/config)
         Malicioso vía API       │     vía git push
                                 ▼
          ┌──────────────────────────────────────────────┐
          │      Túnel SSH Local (puerto 8080)           │
          └──────────────────────┬───────────────────────┘
                                 │
                                 ▼
          ┌──────────────────────────────────────────────┐
          │           Servidor Víctima Gogs              │
          │              (Puerto 3001)                   │
          └──────────────────────┬───────────────────────┘
                                 │
                                 │ (4) API PUT "contents"
                                 │     Sigue Symlink y escribe
                                 │     "sshCommand" en .git/config
                                 ▼
          ┌──────────────────────────────────────────────┐
          │     Ejecución del Payload como ROOT          │
          └──────────────────────────────────────────────┘

脚本主要组件:

  1. create_malicious_repo:使用提供的访问令牌向 Gogs API (/api/v1/user/repos) 发送 POST 请求,以创建一个具有动态生成随机名称的新仓库。
  2. upload_malicious_symlink:
    • 将新创建的仓库克隆到本地临时文件夹 /tmp/。
    • 在攻击者机器上本地创建一个指向 .git/config(服务器的 Git 配置文件)的符号链接。
    • 执行 commit 并通过系统命令(git push)将更改推送回服务器。
  3. exploit:利用 Git 的 sshCommand 属性中的注入技巧定义负载(payload)。通过 API 更新内容时,Gogs 被迫覆盖服务器上自身的 .git/config。当 Git 流程的最后部分被触发时,Gogs 系统执行终端命令(一个 Bash 反向 Shell),将连接返回给您的 Netcat 监听器。

实验室使用指南(HTB - Silentium)

前提条件

在运行脚本之前,请确保在 Git 中配置全局身份信息,以避免自动提交时出错:

root@kitploit:~
git config --global user.email "[email protected]"
git config --global user.name "estudiante"

使用: python3 exploit.py -u (http://127.0.0.1:8080) -lh <TU_IP_VPN> -lp 4446

下载工具