尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
Gogs管理端CSRF+Git Hook RCE完整指南:Exploitarium两步链从跨站伪造到代码执行
Gogs管理端CSRFGit Hook RCE完整指南Exploitarium两步链从跨站伪造到代码执行【免费下载链接】exploitariumA single archive of public exploit PoCs and vulnerability research writeups. At the time I post these, none have been reported. Feel free to report them yourself and take credit for the CVE if handed out lulz. Please do not abuse these. I do this so to allure people into the field, and Ive always found this is the most efficient way.项目地址: https://gitcode.com/GitHub_Trending/ex/exploitariumExploitarium是一个公开漏洞 PoCProof of Concept概念验证与研究写作的存档合集收录了多个尚未上报的漏洞利用研究。本次聚焦其中一条精彩案例针对Gogs自建 Git 代码托管平台的管理端CSRF跨站请求伪造漏洞结合Git HookGit 钩子RCE远程代码执行仅需两步就能从伪造管理员请求一路打到在服务器上执行任意命令。本文用通俗的方式拆解这条攻击链的每一步帮你理解跨站伪造漏洞如何升级成代码执行。什么是 Gogs 管理端 CSRF 漏洞先补两个背景概念Gogs一款开源的轻量级 Git 服务常用于团队自建 Git 仓库可理解为自托管版 GitHub。CSRF跨站请求伪造攻击者诱导已登录的受害者在不知情的情况下由浏览器向目标网站发出带受害者身份的请求。关键在于——网站没有校验这个请求真的是用户本人主动提交的吗。这条漏洞的根源在于Gogs0.15.0dev版本中管理后台的用户编辑表单POST /admin/users/:userid在服务端不校验任何 CSRF 令牌。该表单恰好有两个危险开关admin设为站点管理员和allow_git_hook允许编辑 Git 钩子。攻击者构造一个跨站请求只要登录中的管理员点了某个链接表单就会被替管理员提交——攻击者自己的账号瞬间被加上管理员权限和 Git Hook 编辑权限。两步链从跨站伪造到代码执行整条攻击链只有两步但每一步都踩在关键点上第一步CSRF 提权——普通账号变管理员攻击者向 Gogs 发送一个伪装成跨站提交的请求请求头中带有Sec-Fetch-Site: cross-site等跨站特征表单内容只做了两件关键事adminon allow_git_hookon服务端直接信任了管理员会话把攻击者账号的IsAdmin与AllowGitHook两个字段改写为开启状态。数据库里的变化一目了然攻击前(2, attacker, ..., 0, 0, 1) ← 无管理员、无 Hook 权限 攻击后(2, attacker, ..., 1, 1, 1) ← 已是站点管理员此时攻击者再登录Web API 会如实报告isAdmin: true。提权完成。✅第二步Git Hook RCE——一次普通 push 触发任意命令执行有了管理员身份攻击者走原生 Gogs 网页路由创建一个仓库再通过官方的 Git Hook 编辑器写入post-receive钩子脚本。这个钩子的内容非常朴素#!/bin/sh id /tmp/gogs_hook_proof.txt pwd /tmp/gogs_hook_proof.txt之后攻击者只需执行一次普通的git pushGogs 服务端就会在推送处理流程中执行custom_hooks/post-receive脚本——任意命令以 Gogs 服务进程的权限落地运行。实测验证输出显示命令确实被执行uid1000(owner) gid1000(owner) groups1000(owner),...服务端日志也留下了完整证据链管理员账号更新记录、仓库创建记录、以及推送触发的TriggerTask事件。PoC 文件结构研究材料都在哪本案例的完整材料位于gogs-admin-csrf-git-hook-rce-poc/目录核心文件只有两个文件作用gogs-admin-csrf-git-hook-rce-poc/README.md漏洞文档受影响版本、源码调用链追踪、验证记录、修复方向gogs-admin-csrf-git-hook-rce-poc/poc.py单文件 PoC 脚本仅用 Python 标准库 系统git命令PoC 脚本的执行流程可以概括为 8 步用管理员账号建立会话或直接注入管理员会话 Cookie发送带跨站请求头的 CSRF 表单给攻击者账号提权以攻击者身份登录确认 API 返回isAdmin: true通过/repo/create创建攻击者仓库通过/settings/hooks/git/post-receive写入钩子脚本关键逻辑见 poc.py通过 HTTP 协议克隆该仓库提交一个触发文件并git push输出仓库信息、push 结果与标记文件内容形成完整证据。其中模拟跨站请求的核心代码非常短就是发送一个带Origin/Referer指向外部站点的 POST参见 poc.py直观展示了为什么没有 CSRF 校验就能伪造成功。README 中还附了一张源码追踪表把从路由注册cmd/gogs/internal/web/web.go、无令牌表单模板templates/admin/user/edit.tmpl、参数绑定internal/form/admin.go到钩子执行cmd/gogs/hook.go的完整路径一一列清非常适合学习如何阅读 Go 项目的请求处理链。本地复现环境要求与运行方式复现前需要克隆整个 Exploitarium 存档git clone https://gitcode.com/GitHub_Trending/ex/exploitarium验证环境要求详见 README.mdPython3.10 与系统git命令行一台原版未打补丁Gogs0.15.0dev实例验证用 commit5f51118ab513522462a54cef30599d7ddffcc55f一个站点管理员账号 一个普通攻击者账号一个 Gogs 进程可写的服务器标记路径如/tmp/gogs_hook_proof.txt。运行一条命令即可完成全流程复现脚本支持两种管理员身份注入方式账密模式--admin-user--admin-password脚本自动登录会话模式--admin-cookie直接复用已登录管理员的浏览器会话 Cookie更贴近真实诱导管理员点链接的场景。本地验证时再追加--local-marker参数指向标记文件的宿主机路径脚本会直接打印标记内容让你亲眼看到命令确实执行了。️修复方向与防御建议README 给出的修复建议对任何 Web 开发者都有参考价值核心五招恢复服务端 CSRF 校验对所有需要会话认证的非安全方法POST/PUT/DELETE强制校验表单内嵌一次性令牌经典 HTML 表单应包含每次请求不同的 CSRF token校验请求头元信息对敏感的状态变更路由校验Origin、Referer与 Fetch Metadata 头高危变更二次确认授予管理员权限、Git Hook 权限、改密码等操作应要求重新认证或二次确认收紧钩子权限并审计Git Hook 编辑是高风险权限每次更新都应记录审计日志。对 Gogs 用户而言最直接的行动是升级到已修复版本并检查现有账号中是否存在被异常开启admin或 Git Hook 权限的条目。️写在最后负责任地使用Exploitarium 仓库明确强调这些材料仅可用于自有的、已获授权的测试系统与防御性回归工作。作者发布这些未上报的 PoC初衷是把更多人吸引进安全研究这个领域而非提供武器——滥用这些漏洞属于违法行为请务必守住边界。如果你对CSRF 如何与高权限功能组合成完整攻击链感兴趣本案例堪称教科书式样本一条无令牌的表单 一个原生钩子编辑器两步完成从跨站伪造到 RCE 的跨越。完整研究写作用中文环境阅读无障碍建议直接精读 gogs-admin-csrf-git-hook-rce-poc/README.md仓库中的 cves.md 则汇总了该研究已获得的 CVE 编号方便你了解后续披露进展。【免费下载链接】exploitariumA single archive of public exploit PoCs and vulnerability research writeups. At the time I post these, none have been reported. Feel free to report them yourself and take credit for the CVE if handed out lulz. Please do not abuse these. I do this so to allure people into the field, and Ive always found this is the most efficient way.项目地址: https://gitcode.com/GitHub_Trending/ex/exploitarium创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
RELATED

相关推荐

SpringBoot集成Flowable Modeler深度实践指南

SpringBoot集成Flowable Modeler深度实践指南

简介:本资源是一套基于Spring Boot集成Flowable流程引擎与Modeler可视化流程设计器的完整可运行项目,面向Java后端开发者及工作流系统学习者,解决企业级流程自动化开发中引擎嵌入、流程建模与前后端联调等核心问题。压缩包共1500个文件&#…

📅 2026/9/16 17:44:03
ESPectre 增益鲁棒信号路径:保持 AGC 启用并统一 CV 归一化(std/mean)的架构决策与源码实践

ESPectre 增益鲁棒信号路径:保持 AGC 启用并统一 CV 归一化(std/mean)的架构决策与源码实践

ESPectre 增益鲁棒信号路径:保持 AGC 启用并统一 CV 归一化(std/mean)的架构决策与源码实践 【免费下载链接】espectre Wi-Fi CSI motion sensing for ESP32. C SDK, ESPHome, Native, and Matter frontends, browser tools, and a CLI for t…

📅 2026/9/16 17:44:03
虚拟储能与光伏配比优化:MATLAB仿真与智能楼宇能量管理

虚拟储能与光伏配比优化:MATLAB仿真与智能楼宇能量管理

简介:针对智能楼宇微电网优化场景,这份MATLAB源码包实现了虚拟储能系统与光伏配比联合调度,适合电力系统、建筑节能方向的学生、研究人员及工程师。包内共4个文件,包含2个m函数文件(主程序与适应度计算)、1…

📅 2026/9/16 17:39:02
MORE NEWS

更多资讯

📰

使用 AWS CLI 的 codebuild batch-get-reports 批量获取 CodeBuild 测试与覆盖率报告详情

使用 AWS CLI 的 codebuild batch-get-reports 批量获取 CodeBuild 测试与覆盖率报告详情 【免费下载链接】aws-cli Universal Command Line Interface for Amazon Web Services 项目地址: https://gitcode.com/GitHub_Trending/aw/aws-cli 导读 本文围绕 AWS CLI 中 a…

📰

子域名收集与爆破原理实战:从DNS解析到工具链应用

做安全评估或者资产梳理的时候,我听到最多的一个问法就是:“这个目标到底有多少个子域名?”主域名往往只是门面,真正承载业务的、风险最高的是那些散落在各个环境里的子域名——测试站点、管理后台、旧版接口、第三方系统&#xf…

📰

Docker部署OnlyOffice中文菜单全链路配置指南

1. 项目概述:为什么非得用Docker部署OnlyOffice并配中文菜单? 我第一次在客户现场接手OnlyOffice部署时,踩了整整三天坑——Java环境版本不匹配、Nginx反向代理路径写错两处、locale语言包漏装、甚至因为系统时区没同步导致JWT令牌校验失败报…

📰

DeepSeek V4.1 Flash本地部署:显存估算与vLLM/SGLang启动指南

前两周我准备把 DeepSeek V4.1 Flash 正式接入内部推理服务之前,先在测试机上完整过了一遍本地化部署流程。网上关于这套模型的讨论很散,要么只有显存截图,要么只丢一句启动命令,真正能把显存需求、vLLM/SGLang 启动命令和四条部署…

📰

知识图谱驱动的旅游智能推荐系统实现

简介:这是一套基于Python后端与Vue.js前端构建的智能旅游推荐系统完整代码,面向计算机专业本科生及初学者,聚焦餐饮旅游领域知识图谱的实际应用,解决个性化景点、美食与行程推荐问题,适用于毕业设计、课程设计及期末大…

📰

GroundingDINO 零样本目标检测:给一句自然语言,就把图里的东西框出来

GroundingDINO 零样本目标检测:给一句自然语言,就把图里的东西框出来 【免费下载链接】GroundingDINO [ECCV 2024] Official implementation of the paper "Grounding DINO: Marrying DINO with Grounded Pre-Training for Open-Set Object Detecti…

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬