0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【セキュリティ】OAuth を使用しているアプリを見抜く方法

Last updated at Posted at 2025-11-14

はじめに

OAuth を使ったログインは、もはや Web/アプリでは当たり前。
しかしペンテストやセキュリティ設計の現場では、
「そもそもこのアプリは OAuth を使っているのか?」
「どの OAuth フレームワークなのか?」
を正確に見抜く必要があります。

この記事では、実際のアプリを分析する際に使える
OAuth 利用検知 → フレームワーク特定の実践メソッドをまとめました。


1. OAuth 使用のサイン:まずはログイン画面から読む

最初に確認する場所は ログイン画面

次のようなボタンがあったら、ほぼ間違いなく OAuth / OIDC です:

  • Sign in with Google
  • Continue with Facebook
  • Login with GitHub
  • Appleでサインイン

これらは必ず外部ページにリダイレクトするため、OAuth の典型的挙動と一致します。

迷ったらまず「ログインボタン」を疑え。


2. ネットワーク解析で OAuth フローを確定する

OAuth を確実に検知する最強手段は ブラウザの Network タブを見ること。

ログインフロー中に、以下のような URL にリダイレクトされていれば:

https://dev.coffee.thm/authorize?
  response_type=code
  &client_id=AppClientID
  &redirect_uri=https://dev.coffee.thm/callback
  &scope=profile
  &state=xyzSecure123

これは OAuth 2.0 認可コードフローの典型です。

これらのパラメータが見えたら OAuth 確定

パラメータ 意味
response_type 認可フローの種類(code, token など)
client_id アプリの識別子
redirect_uri コールバック URL
scope 要求権限(email, profile など)
state CSRF 対策値

この5つが揃っている URL を見たら「OAuth が動いている」と断言できます。


3. 次のステップ:使っている OAuth フレームワークを特定する

OAuth 使用が分かったら、次に「どのフレームワークか?」を特定します。

これは脆弱性発見に直結します。
フレームワークごとに「発生しがちなバグ」や「エラー構造」が違うためです。

ここでは、実務でよく使う4つの分析手法を紹介します。


3.1 HTTP ヘッダー&レスポンスから推測する

レスポンスヘッダーや HTML に、フレームワーク名が紛れ込んでいることがあります。

よくある例

観察ポイント 推測できるフレームワーク
X-Powered-By: Express Node.js + Passport.js
HTMLコメント <!-- django-oauth-toolkit --> Django OAuth Toolkit
server: Werkzeug Flask + oauthlib
JSON "spring_oauth_error" Spring Security OAuth

特に エラー画面はフレームワーク名が漏れやすい黄金地帯


3.2 ソースコード/静的ファイルから検索する

アプリの JS バンドルや source map が見れる場合、
フレームワーク名がそのまま出てくることがあります。

Django OAuth Toolkit

  • oauth2_provider
  • /oauth/authorize/
  • /oauth/token/

Spring Security OAuth

  • spring-security-oauth
  • /oauth/check_token

Node.js (Passport)

  • passport.use(
  • passport-google-oauth20

Python OAuthlib

  • from oauthlib.oauth2 import

これは特定力が非常に高い方法。


3.3 認可・トークンエンドポイントの構造で推測

フレームワークは URL ルーティングに特徴があり、
これだけで特定できる場合も多いです。

フレームワーク よくあるパス
Django OAuth Toolkit /oauth/authorize/ /oauth/token/
Spring Security /oauth/token /oauth/check_token
Node Passport /auth/google /auth/google/callback
Keycloak /realms/<realm>/protocol/openid-connect/
Auth0 https://*.auth0.com/authorize

パターンが分かると一瞬で特定できます。


3.4 エラーメッセージから推測する(意外と最強)

以下のようなレスポンスはフレームワーク特有の形です:

OAuthlib(Python)

"error": "invalid_grant",
"error_description": "Invalid redirect URI"

Spring Security OAuth

"error": "access_denied"

Facebook OAuth

"OAuthException"

開発者がデバッグを切り忘れた瞬間があなたのチャンス。


まとめ

OAuth の構造が分かると、アプリの認証が どのように安全性を担保しているか
—or 時に危険な落とし穴を抱えているか—
すぐに見えてきます。

「ログイン画面 → ネットワーク → フレームワークの癖」
この 3 ステップを押さえておけば、OAuth の分析はもう怖くありません。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?