Skip to content
KitploitKITPLOIT
工具漏洞利用博客
Log in
提交
工具漏洞利用博客
提交

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

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

订阅源联系隐私© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
gitea-stargazers-hidden — 针对未认证 Gitea 信息泄露的漏洞验证与实验环境:stargazers 和 watchers API 会泄露 profile 端点所隐藏的用户名。 | Kitploit
工具/GitHubGitHub/abraxas/gitea-stargazers-hidden
侦察漏洞分析信息收集Web安全渗透测试API 安全实验室与实践
GitHubabraxas/gitea-stargazers-hidden

gitea-stargazers-hidden

针对未认证 Gitea 信息泄露的漏洞验证与实验环境:stargazers 和 watchers API 会泄露 profile 端点所隐藏的用户名。

查看仓库
415天前尚未审核

最受欢迎

查看全部 →

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

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

Abraxas Labs - gitea-stargazers-hidden

abraxaslabs.tech  ·  github.com/abraxas  ·  @abraxas_null  ·  [email protected]  ·  gitea-stargazers-hidden

gitea-stargazers-hidden

Gitea 1.27.3 - Gitea

受限用户和私有用户本应从匿名查看者眼中消失。GetInfo 已经对它们返回 404。关注者列表已经在 SQL 中应用了 isUserVisibleToViewerCond。GetStargazers 是对 star 的 join,没有任何可见性过滤。ListStargazers 随后对全部结果执行 convert.ToUser。ListSubscribers 对 watcher 也是同样的结构。

在未登录的情况下,公开仓库的 stargazers JSON 会列出 GET /users/{name} 所隐藏的用户名。

ID暂无 CVE
CWECWE-200
CVSS中危:5.3 CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:N
产品Gitea
受影响版本至 v1.27.3(146cc3e)
认证无需认证
许可证GNU Affero GPL v3.0
实验环境仅限 127.0.0.1

攻击者能做什么

在未登录的情况下,读取公开仓库的 stargazers 和 watchers,并获知 GET /users/{name} 所隐藏的用户名。这是对给公开内容加星或关注(watch)的受限账户和私有账户的侦察:这些人设置了可见性,使自己不出现在搜索中,却仍然点了星标。

泄露的是用户名,不是邮箱,不是私有 git 读取,也不是 RCE。结合 Follow 204 vs 404 预言机,即使个人资料返回 404,你也能确认某个隐藏登录名存在。

我是如何发现的

可见性是 1.27.3 GHSA 浪潮的一个主题。当一个产品有意对个人资料返回 404 时,下一个问题就是哪些列表端点仍然在 join user 时没有应用该条件。stars 和 watchers 就是如此。

我把 hidstar 设为受限用户,让它给一个公开仓库加星并关注,然后在没有 token 的情况下访问该实例。未认证的 GET /api/v1/users/hidstar 返回 404。未认证的 stargazers JSON 包含 hidstar。未认证的 watchers 包含 hidstar。未认证的 followers HTML 不包含。个人资料很害羞,star 表却不。

已记录的弯路:未认证的 GET /users/hidstar 返回 200(那说明可见性完全关闭——实验环境要求 404);followers HTML 列出 hidstar(该路径已经应用了条件);把 /stargazers 返回 200 且只有公开用户名当作 SUCCESS;一个反弹 shell。都是表演。泄露点在于 JSON 中的受限登录名。

实验环境

cd lab
./run.sh

目标仅限 http://127.0.0.1:18133。Compose 允许 public,limited,private 可见性,并保持 stars 开启。

unauth-user-get status=404
unauth-stargazers status=200 stargazer-names=['hidstar']
unauth-watchers leak=True
unauth-followers-web limited-in-html=False
SUCCESS GITEA-STARGAZERS-HIDDEN

修复方案

在 GetStargazers / GetRepoWatchers 中应用 isUserVisibleToViewerCond。未认证的 stargazers 和 watchers 必须像 followers 已经做的那样省略 hidstar。

参考资料

  • github.com/go-gitea/gitea 标签 v1.27.3
  • star.go 路由 · star.go 模型 · subscriber.go · GetInfo · GetUserFollowers
  • 同一标签:gitea-follow-existence
  • CWE-200

许可证

GNU Affero GPL v3.0。参见 LICENSE。仅限回环实验环境。无任何担保。

下载工具