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 端点所隐藏的用户名。

查看仓库
167天前尚未审核

最受欢迎

查看全部 →

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

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

Abraxas Labs - gitea-stargazers-hidden

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

技术分析文章:https://abraxaslabs.tech/research/gitea-stargazers-hidden

gitea-stargazers-hidden

Gitea 1.27.3 - Gitea

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

在未登录的情况下,公开仓库的 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} 所隐藏的用户名。这是对给公开内容点过星或关注过的受限账户和私有账户的侦察:这些人把可见性设置为不在搜索中出现,却仍然点了星。

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

我是如何发现的

可见性是 1.27.3 GHSA 浪潮中的一个主题。当一个产品有意对个人资料返回 404 时,下一个问题就是:还有哪些列表端点仍然在连接 user 表时没有应用该条件。星标和关注者(watchers)就是如此。

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

已记录的弯路:未认证的 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 可见性,并保留星标。

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。仅限回环实验环境。不提供任何担保。

下载工具