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

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

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

订阅源联系隐私© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
gitea-follow-existence — 演示了一个 Gitea 账户枚举预言机:经过身份验证的 PUT /api/v1/user/following/{username} 对隐藏账户返回 204,对未知用户名返回 404,并附带一个回环实验环境。 | Kitploit
工具/GitHubGitHub/abraxas/gitea-follow-existence
侦察漏洞分析漏洞利用信息收集Web安全渗透测试API 安全实验室与实践
GitHubabraxas/gitea-follow-existence

gitea-follow-existence

演示了一个 Gitea 账户枚举预言机:经过身份验证的 PUT /api/v1/user/following/{username} 对隐藏账户返回 204,对未知用户名返回 404,并附带一个回环实验环境。

查看仓库
515天前尚未审核

最受欢迎

查看全部 →

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

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

Abraxas Labs - gitea-follow-existence

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

gitea-follow-existence

Gitea 1.27.3 - Gitea

GetInfo 已经对隐藏用户返回 404,并对其原因撒了谎:fake ErrUserNotExist error message to not leak information about existence。PUT /user/following/{username} 使用 UserAssignmentAPI() 加载目标并调用 Follow。没有 IsUserVisibleToViewer。不存在的名称:404 user redirect does not exist。存在的隐藏名称:204。

204 表示账户存在。404 表示你猜了一个不存在的名称。个人资料 JSON 仍然关闭。

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

攻击者能做什么

登录(默认开放注册成本很低)。即使个人资料 API 返回 404,也能证明隐藏或受限账户存在。无法导出个人资料。无法访问私有 git。结合未认证 stargazers,你可以在公开仓库上找到隐藏登录名,然后在他们隐藏个人资料后确认该账户仍然存在。

Check 和 Unfollow 位于同一组。同样缺少检查。

我是如何发现的

与 stargazers 相同的可见性检查。当一个处理程序如此努力地撒谎时,你会查看所有其他接受 {username} 的路由。Follow 没有。

我注册了一个受限攻击者,关注了隐藏名称,关注了一个不存在的名称,并比较了状态码。公开用户本应返回 204。这不是 SUCCESS。隐藏用户返回 204 而未知用户返回 404,同时 GET 返回 404,这就是 SUCCESS。

已记录的弯路:Follow 隐藏用户返回 404(那么可见性就在此路由上);隐藏用户的个人资料 JSON(GetInfo 已经返回 404——这个 bug 是状态类别,不是数据泄露);将公开用户上的 Follow 204 视为 SUCCESS;反向 shell。都是表演。

实验环境

cd lab
./run.sh

目标仅限 http://127.0.0.1:18134。Compose 允许 public,limited,private 可见性。

get-hidden status=404
follow-hidden status=204
follow-unknown status=404 user redirect does not exist
oracle hidden=204 unknown=404
SUCCESS GITEA-FOLLOW-ORACLE

修复方法

在 FollowUser 之前,在 Follow(以及 Check/Unfollow)中调用 IsUserVisibleToViewer。隐藏名称必须像 GetInfo 已经做的那样返回 404。

参考资料

  • github.com/go-gitea/gitea 标签 v1.27.3
  • follower.go · api.go following 组 · GetInfo
  • 同一标签:gitea-stargazers-hidden
  • CWE-203

许可证

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

下载工具