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
偵察脆弱性分析エクスプロイト情報収集ウェブセキュリティペネトレーションテストAPIセキュリティラボと実践
GitHubabraxas/gitea-follow-existence

gitea-follow-existence

Giteaのアカウント列挙オラクルを実証する: 認証済みの PUT /api/v1/user/following/{username} は、非表示アカウントには 204 を、未知のユーザー名には 404 を返す。ループバックラボ付き。

リポジトリを見る
2316日前未レビュー

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
共有

Abraxas Labs - gitea-follow-existence

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

解説記事: https://abraxaslabs.tech/research/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 は閉じられたままである。

IDCVE 未割当
CWECWE-203
CVSSMedium: 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 ではない。GET が 404 である一方で、非表示が 204、不明が 404 であることは SUCCESS である。

すでに記録済みの誤った道: 非表示の Follow が 404 を返す(ならば可視性はこのルートで機能している); 非表示ユーザーのプロフィール JSON(GetInfo はすでに 404 を返す - このバグはステータスクラスの問題であり、ダンプではない); 公開ユーザーに対する Follow の 204 を SUCCESS とみなすこと; リバースシェル。茶番である。

ラボ

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

修正

Follow(および Check/Unfollow)で FollowUser を呼び出す前に 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 を参照してください。ループバックラボ専用です。保証はありません。

ツールをダウンロード