Skip to content
KitploitKITPLOIT
ツールエクスプロイトブログ
Log in
提出
ツールエクスプロイトブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

フィードお問い合わせプライバシー© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
nextcloud-federated-ocm-token — Nextcloud 35.0.0 — フェデレーテッド共有のシークレットは、共有者のFilesツリー全体に対するスコープなしのアプリパスワードである | Kitploit
ツール/GitHubGitHub/abraxas/nextcloud-federated-ocm-token
脆弱性分析エクスプロイトウェブアプリケーション悪用情報収集ウェブセキュリティペネトレーションテスト認証ラボと実践
GitHub
abraxas/nextcloud-federated-ocm-token

nextcloud-federated-ocm-token

Nextcloud 35.0.0 — フェデレーテッド共有のシークレットは、共有者のFilesツリー全体に対するスコープなしのアプリパスワードである

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

人気

すべて見る →

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

すべてのツールを探索

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

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

Abraxas Labs - nextcloud-federated-ocm-token

abraxaslabs.tech  ·  github.com/abraxas  ·  @abraxas_null  ·  [email protected]  ·  nextcloud-federated-ocm-token

nextcloud-federated-ocm-token

Nextcloud Server 35.0.0 - Nextcloud GmbH

フェデレーション共有のシークレットが、共有者のスコープなし PERMANENT_TOKEN アプリパスワードとして発行される。受信者 API はそれを refresh_token として返す。これを送信側 WebDAV で Bearer として再生すると、共有者としてログインし、一度も共有されなかったファイルを読み取ることができる。

1つのファイルをフェデレーション共有しただけの悪意ある相手が、あなたの Nextcloud にあなたとしてログインし、2FA を回避して、共有したファイルだけでなくすべてのファイルを読み取りまたは上書きできる。

IDCVE 未採番
CWECWE-269, CWE-287
CVSSCritical: 8.1 CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:N (フェデレーション受信者)。公開リンク変換はさらに悪い (ピア上に受信者アカウントが存在しない)。
製品Nextcloud Server
影響を受けるバージョン35.0.0 (da02f41) 公式 nextcloud:35.0.0-apache
認証フェデレーション受信者 (または公開リンク変換者)
ライセンスGNU Affero GPL v3.0
ラボ127.0.0.1 のみ

攻撃者ができること

あなたが別の Nextcloud 上の bob と1つのファイルまたはフォルダを共有する。Nextcloud は32文字のシークレットを発行し、それをあなたのアプリパスワードとして保存し、そのシークレットを refresh_token として Bob に渡す。

その後 Bob (またはあなたの公開リンクをフェデレーション共有に変換した者) は:

  • あなたのサーバー上であなたとしてログインする
  • 共有ノードだけでなく、あなたのホーム内のすべてのファイルを読み取る
  • それらのファイルを上書きする
  • あなたの 2FA を回避する (アプリパスワード経路)

ホスト上で PHP シェルを取得するわけではない。あなたのパスワードも必要ない。共有を承諾したり、先に OCM access-token を呼び出したりしないこと: その交換はファイルシステムスコープをロックする。ラボが証明するのは交換前のシークレットである。


発見の経緯

共有は共有であるべきだ。1つのファイル。1つのフォルダ。私はタグ v35.0.0 の FederatedShareProvider::createFederatedShare を読んだ。これは共有者のためにスコープなしで IToken::PERMANENT_TOKEN として32文字のシークレットを発行する。PublicKeyToken::getScopeAsArray は SCOPE_FILESYSTEM => true をデフォルトとする。それはアプリパスワードだ。Session::tryTokenLogin は永続的な Bearer を受け入れる。

OCM 交換の作業 (PR #57234 / #57166) は、最初の交換の後にファイルシステムスコープをすでにロックしている。非公式の解説はその交換後のホップを使用していた。私も最初にそれを試した。このツリーでは、交換されたトークンは TEMPORARY で、OCM Access Token と名付けられ、/remote.php/dav はそれを拒否する (allowOcmAccessToken は false)。DAV はノーと言った。

そこで私は交換しなかった。ocm_discovery_enabled は false のままにしたので、受信者が私の代わりに交換することはなかった。2つの公式 nextcloud:35.0.0-apache ボックス、overwrite.cli.url を docker DNS (http://sender / http://recipient) として設定。これを 127.0.0.1 のままにすると S2S が自分自身と通信してしまう。

Alice は1つのファイルを bob@http://recipient と共有する。Bob は保留中の共有を読む。refresh_token の長さは32。access_token の長さは0。共有に決して含まれていない Alice のプライベートな証人ファイルに対する未認証の Bearer GET が 200 を返し、X-User-Id: alice であった。


ラボ

cd lab
./run.sh

対象は必ず http://127.0.0.1:18340 (送信者) と :18341 (受信者) のみ。

SUCCESS NEXTCLOUD-OCM-PERMANENT-TOKEN who=federated-recipient uid=alice NEXTCLOUD-OCM-PERMANENT-TOKEN-WITNESS
  • lab/docker-compose.yml
  • lab/Dockerfile
  • lab/run.sh

修正

フェデレーションシークレットを最初の挿入時からファイルシステムスコープ false で発行すること。そのシークレットを /remote.php/dav 上の Bearer/Basic として受け入れないこと。最初の交換はすでに FS スコープをロックしている; 作成時にアプリパスワードを渡すべきではなかった。


参考文献

  • github.com/nextcloud/server タグ v35.0.0
  • 関連する OCM の作業: PR #57234 / PR #57166
  • Abraxas Labs: abraxaslabs.tech · github.com/abraxas · @abraxas_null

ライセンス

GNU Affero GPL v3.0。LICENSE を参照。ループバックラボのみ。無保証。

ツールをダウンロード