Skip to content

Repository files navigation

Gogs Admin Console

用于清理 Gogs 中异常用户、组织、仓库,以及处理 org_user/team_user 脏成员关系的管理控制台。

启动

推荐双击,不显示 CMD 窗口:

GogsAdminConsole.vbs

也可以双击:

GogsAdminConsole.bat

或在 PowerShell 中运行:

cd D:\GogsAdminConsole
.\GogsAdminConsole.bat

连接配置

连接 标签页填写:

Gogs 地址      http://你的-gogs地址:3000
Access Token  管理员 Access Token
Web 用户       管理员网页登录账号
Web 密码       管理员网页登录密码

说明:

  • Access Token 用于 Gogs API 查询和删除。
  • Web 用户/密码 只在 API 无法解除组织成员关系时兜底使用。
  • 保存配置 会使用配置密码加密保存连接参数到 GogsAdminConsole.config.json
  • Web 密码不会保存。
  • Access Token 会保存到加密配置文件,保存前工具会确认。
  • 启动时如果存在本地配置,需要输入配置密码;密码错误或文件无法解密时会停留在密码输入流程,取消输入后旧配置会按时间戳备份并生成新的加密配置。
  • GogsAdminConsole.config.json 及其备份文件已加入 .gitignore,不要提交到仓库。
  • 日志和错误信息会对 token、password、secret、api key 等字段做脱敏。
  • 重置配置 从配置文件恢复。
  • 清空输入 恢复默认值。

基本流程

  1. 连接 标签页点击 查询全部
  2. 用户组织仓库 标签页勾选要删除的项目。
  3. 确认受保护项目无法勾选。
  4. 点击 删除勾选项
  5. 二次确认时输入 DELETE

点击 查询全部 会先自动加密保存当前连接配置,再按搜索词、用户组织、用户仓库、组织仓库逐段请求;状态栏会显示当前分段进度,列表会随着分段结果自动刷新。查询期间可以点击 取消查询,工具会在当前分段请求结束后停止后续请求并保留已查询到的结果。

默认保护:

  • 当前 token 用户
  • 当前用户加入的组织
  • adminrootgitgogs
  • 额外保护 中填写的名称

异常路径手动添加

如果搜索不到攻击者创建的异常仓库或组织,进入对应标签页点击 手动添加

示例:

repo data/gogs/data/tmp/local-r/251/c275s1ak
org suspicious-org
user suspicious-user
http://example.com/data/gogs/data/tmp/local-r/251/c275s1ak

未加前缀且包含多段 / 的路径,会按仓库 owner/repo 处理。

组织成员关系错误

如果删除用户时出现:

user still has membership of organizations

工具会自动尝试:

  1. 通过 API 移除用户的 team membership。
  2. 通过 Web 登录移除组织成员关系。
  3. 重试删除用户。

如果仍失败,通常是数据库中存在脏 org_user/team_user 记录。

脏数据修复 SQL

用户 标签页勾选失败用户,然后进入 成员关系修复

  • 为勾选用户生成检查 SQL:只生成 SELECT,不删除。
  • 为勾选用户生成删除 SQL:生成 DELETE,需要先备份数据库。
  • SQL 会写入 gogs_repair_memberships.sql 并复制到剪贴板。

Docker 容器内 SQLite 示例:

cp /app/gogs/data/gogs.db /app/gogs/data/gogs.db.bak.$(date +%Y%m%d%H%M%S)
sqlite3 /app/gogs/data/gogs.db "DELETE FROM team_user WHERE uid IN (72,74); DELETE FROM org_user WHERE uid IN (72,74);"

执行数据库修复前必须先备份数据库,并确认 UID 只属于攻击者用户。

文件说明

GogsAdminConsole.bat     双击启动入口
GogsAdminConsole.py      GUI 主程序
config_store.py          加密配置读写和备份逻辑
query_service.py         分段查询、增量刷新事件和取消逻辑
gogs_cleanup.py          Gogs API/Web 后端逻辑,不能删
gogs_db_repair_sql.py    成员关系修复 SQL 生成逻辑,不能删

About

用于批量清理 Gogs 中异常用户、组织、仓库

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages