0Pricing
Ethical Hacking Academy · レッスン

よくあるバグの発見

IDOR、XSS、SSRF

「よくあるバグの発見」はCoddyKit上の無料Ethical Hacking Academyレッスンです。 これはレッスン3/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはEthical Hacking Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Ethical Hacking Academyコースには全4レッスンが含まれています。

基本となる脆弱性

脆弱性の種類の中には、よくあるうえに影響も大きいため、バグ報奨金の大部分を占めるものがあります。まずは次の3つを身につけてください。

  • IDOR — 予測可能なIDを使って他のユーザーのデータにアクセスする脆弱性
  • XSS — ページにスクリプトを注入する脆弱性
  • SSRF — 攻撃者が指定したURLをサーバーに取得させる脆弱性

このレッスンでは、それぞれを体系的に探す方法を説明します。

IDORを理解する

Insecure Direct Object Reference (IDOR)は、アプリがユーザーから提供された識別子を使ってオブジェクトを取得する際に、そのユーザーが所有者であるか確認しない場合に発生します。

IDを変更すると他人のデータにアクセスできる状態です。これはインジェクションではなく、アクセス制御の不備です。

# Your own invoice
GET /api/invoices/1001  Authorization: Bearer <your-token>

# Change the ID - do you get someone else's?
GET /api/invoices/1002  Authorization: Bearer <your-token>

効果的にIDORを探す

IDORを見つけるには、2つのアカウントを作成して比較します。IDでオブジェクトを参照しているものは、すべて候補になります。

  • アカウントAから、Aのデータを取得するリクエストを取得します
  • アカウントBのセッションを使い、AのオブジェクトIDを指定して再送します
  • BがAのデータを見られた場合、それはIDORです

URL、JSONボディ、ヘッダー、さらにはbase64形式やUUID形式に含まれるIDにも注意してください。

# Original (account A)
POST /api/profile/update
{ "user_id": 5001, "email": "a@example.com" }

# Tamper: use account B's session, keep A's user_id
# If A's profile changes, broken object-level authorization.

XSSを理解する

Cross-Site Scripting (XSS)は、別のユーザーのブラウザーで実行されるJavaScriptを注入する攻撃です。主な種類は3つあります。

  • Reflected — ペイロードが直ちにレスポンスへ反映されます
  • Stored — ペイロードが保存され、他のユーザーに配信されます(影響が最も大きい種類です)
  • DOM-based — クライアント側のJSが攻撃者の入力を安全でない形でDOMに書き込みます

XSSをテストする

まず固有のマーカーを注入し、入力がどこに、どのように反映されるかを確認します。その後、コンテキスト(HTML本文、属性、スクリプト)に合ったペイロードを作成します。

どのペイロードで抜け出して実行できるかは、コンテキストによって決まります。

# Probe reflection with a unique canary
?q=xss7391canary

# Basic HTML-context payload
<script>alert(document.domain)</script>

# Attribute breakout
" onmouseover=alert(1) x="

XSSの影響を証明する

単純なalert(1)で実行自体は証明できますが、レビュー担当者が求めるのは影響です。攻撃者が実際に何を盗めるか、何を実行できるかを示してください。

  • JavaScriptからアクセスできるCSRFトークンやセッション情報を読み取る
  • document.domainを表示して、オリジンを証明する
  • Stored XSSの場合は、被害者のアカウントで発火することを示す

実際のユーザーのセッションを決して盗まず、可能性を示すだけにしてください。

アプリにおけるSSRFを理解する

バグバウンティにおけるSSRFとは、自分が制御するURLを取得する機能を見つけることです。候補になりやすいのは次の機能です。

  • Webhook URL、コールバックURL
  • リモートリソースを取得する画像・PDF生成機能
  • URLプレビューやリンクの展開機能
  • URLからのインポート機能

これらの機能に内部エンドポイントやメタデータエンドポイントを指定して、影響を証明します。

Out-of-BandでSSRFを確認する

取得された内容がレスポンスに表示されない場合は、out-of-bandサーバーを使って、対象がリクエストを送信したことを確認します。インタラクションのコールバックがあれば、blind SSRFを証明できます。

Burp Collaboratorやinteractshなどのツールを使うと、アクセスを記録する固有のURLを取得できます。

# Give the app your unique OOB URL
POST /api/webhook
{ "callback": "http://abc123.oast.fun/" }

# If abc123.oast.fun logs a DNS/HTTP hit, the server fetched it = SSRF.

プロキシを使って探索する

この3種類のバグは、リクエストを傍受して改ざんすることで見つけられます。インターセプトプロキシが中心となるツールです。

  • Burp SuiteまたはOWASP ZAPでトラフィックを取得・変更します
  • Repeaterで個々のリクエストを再送し、調整します
  • Intruderやfuzzerで多数のIDやペイロードをテストします

1つの手法だけを学ぶより、プロキシを深く理解するほうが大きな成果につながります。

連鎖させて影響を拡大する

最も高額な報奨金は、バグを連鎖させた場合に得られます。中程度の深刻度のバグも、別のバグと組み合わせることで重大な問題になることがあります。

  • SSRFでクラウドのメタデータに到達すると、認証情報の窃取やアカウント乗っ取りにつながります
  • IDORでトークンが漏えいすると、アカウントを完全に侵害される可能性があります
  • 管理者パネルのStored XSSは、管理者アカウントの乗っ取りにつながります

常に「このバグは何と組み合わせられるか」と考えてください。

慎重に、スコープ内でテストする

これらのバグは、実際のデータやユーザーに関わります。倫理的に行動してください。

  • 自分のテストアカウントを使い、証明に必要な範囲を超えて実際のユーザーのデータを見ないでください
  • 実際のユーザーに発火する可能性があるStored XSSのペイロードは避け、自分だけを対象にしてください
  • SSRFでは内部システムの奥深くまでピボットせず、成立条件を証明したら停止してください

責任を持って影響を示すことで、セーフハーバーの範囲内にとどまれます。

クイックチェック

ユーザーBとしてログインし、Bのセッションを使ってユーザーAのオブジェクトIDを指定したリクエストを再送したところ、Aの非公開データを受け取りました。これはどの脆弱性ですか?

振り返り:一般的なバグを見つける

価値の高い3種類のバグを探す方法を学びました。

  • IDOR:2つのアカウントを比較し、オブジェクトIDを改ざんして所有権の検証を確認します
  • XSS:反映を調べ、コンテキストに合ったペイロードを使い、実際の影響を証明します
  • SSRF:URL取得機能を探し、blindなケースはout-of-bandで確認します
  • バグを連鎖させ、重大な影響につなげます(例:SSRFからクラウドのメタデータへ到達)
  • インターセプトプロキシを使い、スコープ内で作業します

次は、発見した問題を報奨金につながるレポートにします。

よくある質問

「よくあるバグの発見」レッスンは無料ですか?

はい。「よくあるバグの発見」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Ethical Hacking Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Ethical Hacking Academyコースには全4レッスンが含まれています。

「よくあるバグの発見」で何を学びますか?

IDOR、XSS、SSRF ブラウザで直接実行するハンズオンコードでEthical Hacking Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。

Ethical Hacking Academyを始めるのに経験は必要ですか?

事前経験は必要ありません。CoddyKitのEthical Hacking Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン3/4です。

「よくあるバグの発見」レッスンにはどのくらい時間がかかりますか?

ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。

このEthical Hacking Academyレッスンでコードを書いて実行できますか?

はい。すべてのEthical Hacking Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。

このコースのすべてのレッスン

  1. ターゲットの選定
  2. 大規模な偵察
  3. よくあるバグの発見
  4. 優れたレポートの書き方
← Ethical Hacking Academyに戻る