ニュースレター登録
資料ダウンロード
お問い合わせ

SECURITY 542

Web App Penetration Testing and Ethical Hacking

日程

2026年10月19日(月)~2026年10月24日(土)

期間
6日間
講義時間

1日目:9:00-17:30
2日目~6日目:9:30-17:30

受講スタイル
LiveOnline(オンライン受講)
会場

◆LiveOnline形式
 オンライン

GIAC認定資格
GWAPT
講師
Timothy McKenzie|ティモシー マッケンジー
SANSプリンシパルインストラクター
言語
英語 英語教材・同時通訳
定員
40名
CPEポイント
36 Points
受講料
早期割引価格:1,259,500円(税込み 1,385,450円)
※キャンペーン価格のため、他の割引の重複適用はできません。ご了承ください。
通常価格:1,334,500円(税込み 1,467,950円)
申込締切日
早期割引価格:2026年9月4日(金)
通常価格:2026年10月8日(木) 13:00
オプション
  • GIAC試験 価格:149,850円(税込み 164,835円)
  • OnDemand 価格:149,850円(税込み 164,835円)
  • Skills Quest by netwars 価格:74,250円(税込み 81,675円)
※オプションの価格は、コース本体とセットでお申込みいただく場合のみ有効です。
※コース本体のお申込み後にGIAC試験オプションを追加される場合は、事務手数料10,000円(税込11,000円)を申し受けます。
※お申込み締切後はオプションの追加のお申込みを承ることができませんのでご了承ください。
※お申込み締切後にGIAC試験を追加する場合は、こちらのページ(英語)をご参照のうえ、GIACへ直接お申込みください。なお、コース本体とセットでお申込みいただいた場合は特典として模擬試験2回分が付きますが、GIACへ直接お申込みの場合は模擬試験2回分の特典はございません(別途購入可能)

以下の「お申し込み」を押すと、NRIセキュアのお申し込みサイトに遷移します。

受講に必要なPC環境

演習で使用するノートPCをご準備下さい。受講に必要なPC環境についてご確認ください。

SEC542 PC設定詳細

重要:次の手順に沿って設定されたノートPCをご準備ください。

このコースを受講するには、適切に構成されたシステムが必要です。これらの指示を注よく読み、従わない場合、コースに不可欠な実践的な演習に完全に参加できないため、満足する受講ができなくなります。そのため、指定された要件をすべて満たしたシステムを持ってお越しください。

受講前にシステムをバックアップしてください。機密データが保存されていないシステムを使用することを推奨します。

必須システムハードウェア要件

  • CPU: 64ビット Intel i5/i7 2.0GHz以上のプロセッサ(ARMベースのM* MacBookは不可)
  • BIOS: Intel-VTが有効になっていること
  • USB: 3.0 Type-Aポート
  • RAM: 16GB RAM
  • ハードディスク空き容量: 130GB
  • オペレーティングシステム: 最新バージョンのWindows 10、Windows 11、macOS 10.15.x以降、または下記で説明するVMware仮想化製品をインストールおよび実行できるLinux
  • 注: M*プロセッサを搭載したAppleシステムは、現時点では必要な仮想化を実行できないため、このコースでは使用できません。

追加のハードウェア要件

下記の要件は、上記の基本要件に加えて必要となります。講座開始前に、仮想化ソフトウェアをインストールし、下記で説明する追加のハードウェアおよびソフトウェア要件を満たす必要があります。これらの指示をよく読んで従わないと、このコースに不可欠な実習に参加できなくなるため、講義に満足できないまま終了することになります。

ネットワーク、無線接続:無線LAN 82.11 B、G、N、またはAC規格に対応したネットワークアダプタが必要です。

追加のソフトウェア要件

  • 講座開始前に、VMware WorkstationまたはVMware Fusionバージョン25H2以降をダウンロードしてインストールしてください。
  • VirtualBoxやHyper-Vなどの他の仮想化ソフトウェアは、講座中に発生する可能性のある互換性やトラブルシューティングの問題のため、適していません。
  • Windows 10上のVMware Workstationは、Windows 10のCredential GuardおよびDevice Guardテクノロジーと互換性がありません。システムでこれらの機能が有効になっている場合は、このドキュメントの手順に従って、講義中はこれらの機能を無効にしてください。

コースで使用するメディアはダウンロードで配信されます。メディアファイルは容量が大きく、40~50GB程度のものもあります。ダウンロードには十分な時間を確保してください。インターネット接続状況と速度は大きく変動し、様々な要因に左右されるため、教材のダウンロードにかかる時間を予測することはできません。リンクを受け取り次第、コースメディアのダウンロードを開始してください。講座初日にはコースメディアがすぐに必要になります。講座開始前日の夜にダウンロードを開始すると、失敗する可能性が高くなります。

SANSは印刷教材をPDF形式で提供し始めました。さらに、一部のクラスではPDFに加えて電子ワークブックを使用しています。電子ワークブックを使用するクラスは今後急速に増加していくでしょう。この新しい環境では、講師のプレゼンテーション中や実習中に教材を表示しておくために、セカンドモニターやタブレット端末が役立つことがわかっています。
ノートパソコンの仕様についてご質問がある場合は、カスタマーサービスまでお問い合わせください。

SEC542 コース概要

組織がWebアプリケーションを適切にテストし、セキュリティ対策を講じなければ、攻撃者は重要なシステムを侵害し、データを盗み出し、業務を妨害し、規制上の問題を引き起こす可能性があります。多くの組織は依然として脆弱性スキャナだけに頼り、これらのツールが現実世界の脆弱性を確実に検出できると考えています。

SEC542では、ボタン一つで操作できるツールに頼るのではなく、焦点を絞った、価値の高いWebアプリケーションペネトレーションテストを実施する方法を学びます。機密性の高いワークフローとデータを支える、インターネットに公開されているアプリケーションと社内ビジネスアプリケーションの両方を評価するための、再現性のある手法を習得します。

実践的なラボ演習を通して、SQLインジェクション、XSS、デシリアライゼーションのバグ、SSRF、ファイルインクルージョンなどの脆弱性を発見し、悪用する方法を練習し、関係者にビジネスへの影響を説明します。このコースはWebアプリケーションセキュリティの実践的な基礎を築きます。1週間で専門家になれるわけではありませんが、コース終了後も継続的にスキルを向上させるためのスキル、プロセス、そして考え方を身につけることができます。

SEC542  Web App Penetration Testingは、最新のWebアプリケーションをテストするための包括的な手法を構築します。このコースでは、個々のテクニックを教えるのではなく、OWASP Web Security Testing Guideを基盤とし、豊富な実践的なラボ演習を通して、偵察とマッピングから攻撃と報告まで、段階的に学習を進めます。

最初のセクションでは、Webの仕組みを理解することに重点を置きます。受講者はHTTPリクエストとレスポンス、ヘッダー、Cookie、HTTPメソッドについて復習し、TLSと証明書の設定がセキュリティにどのように影響するかを学びます。Burp SuiteやOWASP ZAPなどの傍受プロキシを使用することで、ターゲットのプロファイリング、攻撃対象領域の列挙、スキャナや単純なブラウジングでは見逃されがちな設定上の脆弱性の発見方法を習得します。

コースはファジング、スキャン、APIへと進みます。受講生はffufやプロキシベースのスキャナといったツールを用いて入力ファジングを実践し、隠されたコンテンツやパラメータ駆動型の挙動を発見します。Web API、OpenAPI定義、Brunoなどのツールを用いて、API設計と認証がどのように新たな攻撃対象領域を生み出すかを理解します。その過程で、JSON Web Tokenを含む一般的な認証メカニズムとIDプロトコルを分析し、実装パターンがリスクを生み出す箇所を特定します。

IDとアクセス制御の脆弱性には特に重点的に取り組みます。受講生はブラインド方式と非ブラインド方式の両方でユーザー名収集を行い、その成果をパスワードスプレー攻撃やアカウントロックアウトテストに結びつけます。パラメータ改ざんやページへの直接アクセスといった認証バイパスの脆弱性を探求し、その後、オブジェクトレベルおよび関数レベルの認証の不備、垂直および水平方向の権限昇格といった認可の問題へと進みます。クライアントサイド攻撃はこれらのテーマを補完し、DOMの挙動、ブラウザ開発者ツール、DOMベースのXSS、ブラウザエクスプロイトフレームワークBeEFについて解説します。

続くセクションでは、サーバーサイド攻撃について詳しく掘り下げます。受講生はプロトタイプ汚染について調査し、JavaScriptの継承操作がビジネスロジックの悪用につながる可能性について学びます。エラーベースのSQLインジェクション、ブラインドテクニック、アウトオブバンドデータベースインジェクションを実践し、同様の手法をNoSQLインジェクションにも適用します。ラボでは、Burp Suite、sqlmap、curl、John the Ripper、CeWLを組み合わせて、エクスプロイトの自動化、クレジットカード番号などの機密データの窃盗、ハッシュのダンプ、高価値認証情報のクラックを行います。コマンドインジェクションのラボでは、Burp Collaborator、DNSベースのデータ漏えい手法、ChatGPTの支援を受けて構築したカスタムPythonツールを用いて、可視シナリオとブラインドシナリオの両方を網羅します。

本コースでは、SSRFとXML外部エンティティ脆弱性についても取り上げます。受講生はファジングとエラー分析を用いてSSRF攻撃を仕掛け、データベースの特定と特定の列の取得を行います。XXEラボでは、XML処理の設定ミスによってローカルファイルが漏えいしたり、リモートコンテンツが取得されたり、システムコマンドが実行されたりする可能性を示し、安全なパーサー設定の重要性を改めて認識します。

受講生は、Requestsライブラリとhttpxライブラリを使用して、レスポンスヘッダーの検査やディレクトリのブルートフォース攻撃といった一般的なテストタスクを自動化するPythonスクリプトを作成します。安全でないデシリアライゼーションに関する演習では、JavaのデシリアライゼーションとPythonのピクル化について学び、連鎖的な情報漏えい、ファイルインクルージョン、シリアライゼーションの脆弱性を組み合わせることで、機密ファイルの読み取りやリモートコード実行が可能になることを示します。サーバーサイドのテンプレートインジェクションについては、単純なテンプレート出力からファイルアクセス、コード実行へと段階的にエスカレートする概念実証演習を通して学びます。

クライアントサイドの信頼境界は、クロスサイトリクエストフォージェリ(CSRF)演習で強化されます。受講生は、管理者パスワードやその他の設定を変更するCSRFエクスプロイトを作成、悪用、自動化します。さらに、ファイルアップロード処理とWebシェルに焦点を当てた演習では、アップロード制御を回避し、サーバーサイドのペイロードを展開します。Metasploit Framework演習では、msfconsoleの実践的な使用方法、WordPressプラグインの脆弱性の悪用、PHP Meterpreterペイロードとのやり取り、侵害したターゲットから盗み出したファイルの保存方法を学びます。

最後に、SEC542では技術的な内容を実際のペネトレーションテストの実践に結びつけます。受講生はセキュリティログ記録と監視の不具合について議論し、Webアプリケーションにおける論理的欠陥につながる可能性のある問題点を検証し、LLMアプリケーション向けのOWASP Top 10を考察することで、大規模言語モデルコンポーネントがリスクプロファイルにどのような影響を与えるかを理解します。ペネトレーションテストの準備と事後評価活動に関するビジネスに特化した内容は、受講生が業務の計画と範囲設定、業務ルールの定義、ステークホルダーとのコミュニケーション、そして技術的な発見事項を明確なレポート、エグゼクティブサマリー、および事後報告にまとめ、フォローアップと継続的な改善に役立てるのに役立ちます。

コース修了時には、受講生はWebアプリケーションを評価するための再現可能なプロセスと、現代の環境で重要な脆弱性に関する豊富な実践経験を習得します。SEC542は近道を提供するのではなく、実践的なスキルを構築することを目的としており、受講生がコース終了後もWebアプリケーションテストの能力を磨き続けるために必要な考え方とワークフローを身につけることができます。

受講対象者

  • 一般的なセキュリティ専門家
  • ペネトレーションテスト担当者
  • エシカルハッカー
  • Webアプリケーション開発者
  • Webサイトのデザイナー、アーキテクト、開発者

シラバス

  • DAY1
  • DAY2
  • DAY3
  • DAY4
  • DAY5
  • DAY6

概要と情報収集

このWebアプリケーションペネトレーションテストコースの最初のセクションでは、傍受プロキシ、HTTPの基礎、情報収集、仮想ホストの検出、ターゲットプロファイリング、HTTPSテスト、コンテンツスパイダリングといった基本的なテクニックを解説します。ラボ演習では、Burp Suiteの設定と徹底的な評価の実施を行います。

取り上げられるトピック

  • Webアプリケーションペネトレーションテストの手法
  • 傍受プロキシ
  • HTTPの基礎:プロトコル、リクエスト、レスポンス
  • 仮想ホストの検出、スパイダリング、ターゲットプロファイリング
  • セキュリティテストの基礎

ラボ

  • Webトラフィックを傍受するためのBurp Suiteの設定
  • HTTPの基礎に関する実践演習
  • サーバー上の追加ホストを特定するテクニック
  • 設定と脆弱な暗号の分析
  • Webアプリケーションコンテンツの検出とマッピングのためのツールの使用

概要

Webアプリケーションのペネトレーションテストを成功させるには、攻撃者の視点を理解することが不可欠です。本コースでは、プロトコル、言語、クライアント、サーバーアーキテクチャといったウェブ技術の基礎を深く掘り下げて解説します。特に、仮想ホストの検出やHTTPレスポンスヘッダーの分析、Cookieセキュリティ制御、HTTPメソッドなど、DNS偵察技術に重点を置いています。

本コースでは、OWASP Web Security Testing Guide(WSTG)の手法を活用し、質の高い評価を提供します。ペネトレーションテストツールキットに欠かせないツールについても解説し、Burp Suite Professional、Zed Attack Proxy(ZAP)、Caidoといった傍受プロキシに焦点を当てます。受講者は、これらのツールを使ってSSLトラフィックを傍受し、ウェブアプリケーションを探索する方法を学びます。

セクション1では、Secure Sockets Layer(SSL)構成の複雑な仕組みを詳しく解説し、一般的な脆弱性を明らかにします。cURL、nmap、testssl.shなどのツールを用いて、ターゲットの検出とプロファイリングを行い、構成の詳細情報を収集し、ウェブアプリケーションのスパイダリング/クローリングによってコンテンツを検出する方法を習得します。実践的なラボ演習では、偵察活動における実践的な経験を積み、潜在的な構成上の欠陥を特定し、各サーバーの包括的なプロファイルを作成することができます。

ラボの詳細

  • インターセプトプロキシの設定
    • Burp Suiteライセンスの設定
      • Burp Suite Professionalライセンスのアクティベーション
      • SANSポータルからのライセンスキーの取得
      • SEC542 VM上のBurp Suiteへのライセンスのインストールとアクティベーション
    • Burp、ZAP、およびCaidoのSSLインターセプトのためのFirefoxの設定
      • Burp ProのルートCA証明書をFirefoxにインポートし、動作確認を行
      • ZAPのルートCA証明書をFirefoxにインポートし、動作確認を行う
      • CaidoのルートCA証明書をFirefoxにインポートし、動作確認を行う
    • SANS ChatGPT教育ワークスペースへのアクセス設定
      • SANS ChatGPTワークスペースで新規プロジェクトを作成する
      • ChatGPTがペネトレーションテストタスクを支援するかどうかを判断できるようにプロジェクトを設定する
  • インターセプションプロキシの紹介
    • 目的:
      • インターセプションプロキシ(Burp Suite ProfessionalおよびZAP)の一般的な機能について学ぶ
      • 人気ゲームのスコアリングサーバーをハッキングして「スネークチャレンジ」を解決する
    • 主な演習:
      • インターセプションプロキシを効果的に設定および使用する
      • リクエストとレスポンス内の特定のパラメータを特定および操作して、セキュリティメカニズムに対して優位性を得る
    • 使用ツール:Burp Suite Professional、ZAP、ChatGPT、WolframAlpha
  • 仮想ホストの検出
    • ラボ概要:
      • 仮想ホストの検出は、Webサーバー上の「隠れた」アプリケーションを見つけるための重要な要素である
      • ネットワークベースの評価において、仮想ホストの検出は、Webアプリケーションのペネトレーションテストで優れた結果をもたらす
      • このラボでは、アクティブDNSクエリ、DNSゾーン転送、オンラインDNSデータベース、証明書の透明性ログなど、複数の検出手法の使用に焦点を当てる
    • 目的:
      • ターゲット環境内の仮想ホストに関連付けられている可能性のある名前を特定する
      • 複数の手法(アクティブDNSクエリ、DNSゾーン転送、オンラインDNSデータベース、証明書透明性ログ)を用いて特定する
      • プライマリドメインと同じサーバー上でホストされている可能性のあるWebアプリケーションまたはサービスを特定する
    • 主な演習:
      • digコマンドを使用してアクティブDNSクエリを実行し、ターゲットドメインに対してタイプ「ANY」のレコードを検索する
      • DNSReconやNmapなどのツールを使用して、ターゲットドメインのDNSゾーン転送を試みる
      • crt.shやdnsdumpster.comなどのオンラインDNSデータベースを調査し、ターゲットドメインに関連付けられている有効なx.509証明書を特定する
      • dnsrecon.pyやNmapのdns-bruteスクリプトなどのツールを使用して、ブルートフォース攻撃により追加のサブドメインを特定する
      • 証明書透明性(CT)ログを分析し、SSL/TLSで保護された仮想ホストを特定する
    • 使用ツール:dig、DNSRecon、Nmap、crt.sh dnsdumpster.com
  • サーバー情報の収集とHTTPSのテスト
    • ラボ概要:
      • Nmap NSEスクリプトを使用したサーバー情報の収集
      • HTTPS構成のテストと暗号強度の評価
      • 様々なツールを使用したWebサイトのセキュリティ分析
    • 目的:
      • Nmap NSEスクリプトを活用したサーバー情報の収集
      • インターセプションプロキシ内からのレスポンスヘッダーの確認
      • Retire.jsプラグインを使用した古いコンポーネントの特定
      • GoWitnessを使用したWebサイトのスクリーンショットの取得
      • HTTPS構成のテストと、設定ミスのある証明書、脆弱なプロトコルおよび暗号の特定
    • 主な演習:
      • Nmapを使用したサーバー情報の収集と暗号強度のテスト
      • インターセプションプロキシ内からのレスポンスヘッダーの分析
      • Retire.jsプラグインを使用した古いコンポーネントの特定
      • GoWitnessを使用したWebサイトのスクリーンショットの取得
      • HTTPS構成の評価と脆弱な暗号の特定
      • 複数のWebサイトのセキュリティ構成の比較
      • 使用ツール:GoWitness、Nmap、Burp Pro testssl.sh、Retire.js
  • Webスパイダリング
    • wgetを使用したWebスパイダリング
    • Burp Suiteを使用したアクセス可能なアプリケーションエントリポイントとリンクされたアプリケーションのエントリポイントの検出
      • Burp SuiteのSpider機能を使用したサイトのクロール
      • 出力結果を分析し、潜在的なエントリポイントや隠しディレクトリを特定
      • 検出されたURLを手動で検証し、アクセス可能性を確認
    • ZAPを使用したWebアプリケーションの探索
      • ZAPを起動し、インターセプトプロキシとして設定
      • ZAPでサイトマップを設定し、リンクされたアプリケーションのエントリポイントを検出
      • トラフィックパターンを分析し、潜在的な脆弱性を検討
    • CeWLを使用してWebページからワードリストを作成

トピックの詳細 

  • なぜWebなのか?
    • Webアプリケーションはビジネスにおいて遍在し、不可欠な存在ですが、適切なセキュリティ対策が講じられていないことが少なくありません。このセクションでは、ペネトレーションテストを通してWebアプリケーションのセキュリティ評価を理解することがなぜ重要なのかを解説します。
  • アプリケーション評価手法
    • 定義された範囲とテスト期間内で脆弱性を発見することに重点を置き、徹底的なWebアプリケーション評価を実施する方法を学びます。
    • 一貫性があり、厳密で、品質管理されたテストプロセスを実現するために、OWASP Web Security Testing Guide(WSTG)のような構造化された手法の重要性を理解します。
    • 攻撃プラットフォーム、スキャナ、ブラウザ、インターセプションプロキシなど、効果的なWebアプリケーションペネトレーションテストのための包括的なツールキットの構築に関する知見を得ます。
  • Webアプリケーションペネトレーションテストツールキット
    • 攻撃プラットフォーム、動的Webアプリケーションセキュリティスキャナ、ブラウザ、インターセプションプロキシなど、Webアプリケーションペネトレーションテストツールキットの主要コンポーネントを理解します。
  • インターセプションプロキシ
    • ZAPやBurp Suiteなどのインターセプションプロキシを実際に使用して、HTTPリクエストとレスポンスを傍受、検査、操作する方法を学びます。
    • インターセプションプロキシがWebアプリケーションの効率的な分析を促進する役割を理解し、ペネトレーションテスターが自動スキャンだけでは見落とされがちな脆弱性を特定できるようにします。
  • HTTP構文とセマンティクス
    • HTTP構文とセマンティクスを理解することは、隠れた脆弱性を発見できる効果的なWebアプリケーションペネトレーションテストリクエストを作成する上で不可欠です。
    • GET、POST、PUT、DELETEなどのHTTPリクエストメソッドを習得することで、ペネトレーションテスターは潜在的なセキュリティ問題を特定し、アプリケーションがさまざまな種類のデータをどのように処理するかを理解できます。
    • HTTPヘッダーに関する知識があれば、認証、コンテンツタイプの処理などに関連する弱点をターゲットにしたテストが可能になり、Webアプリケーションセキュリティの包括的な評価が保証されます。
  • 情報収集
    • ペネトレーションテストの取り組みに役立つWebアプリケーションに関する重要な情報を収集する方法を学びます。これには、エントリポイントや潜在的な脆弱性の特定が含まれます。
  • 仮想ホストの検出
    • Webサーバーに関連付けられた仮想ホストを特定し、列挙します。これは、Webアプリケーションの背後にあるインフラストラクチャを理解する上で重要なステップです。
  • ターゲットプロファイリング
    • ターゲットプロファイリングは、Webアプリケーションのペネトレーションテストにおいて不可欠です。ペネトレーションテスターは、ターゲットシステムの構成や技術スタックに関する詳細な情報を収集し、特定の脆弱性に攻撃を集中させることができます。
  • HTTPSと脆弱な暗号のテスト
    • HTTPS通信で使用される脆弱な暗号を特定し、テストする方法を理解することは、効果的なWebアプリケーションのペネトレーションテストにおいて非常に重要です。これにより、不正アクセスやデータ傍受につながる可能性のある脆弱性を悪用することが可能になります。
  • コンテンツ発見(スパイダリング)
    • スパイダリングによるコンテンツ発見は、Webアプリケーションのペネトレーションテストにおいて不可欠です。ペネトレーションテスターは、ターゲットアプリケーション内で参照されているすべてのリソースを特定し、マッピングすることができます。

ファジング、スキャン、API、認証

セクション2では、脆弱性検出のためのファジング、情報漏えい分析、NucleiやBurp Suite Proスキャナの使用など、高度なWebアプリケーションセキュリティ技術に焦点を当てます。また、コンテンツ発見のための強制ブラウジング、APIエクスプロイト、様々な認証方法、フェデレーションIDプロトコルについても解説します。

取り上げられるトピック

  • ファジングや情報漏えい検出などの技術を習得する
  • Burp Suite Proなどの高度なスキャンツールを活用する
  • 強制ブラウジングを使用してリンクされていないコンテンツを見つける
  • Brunoなどのツールを使用してAPIの脆弱性を特定し、悪用する
  • フェデレーションIDおよびアクセスプロトコルについて

ラボ

  • ファジング技術を実践的に学ぶ
  • 動的脆弱性スキャンの設定オプションを検証する
  • 強制ブラウジングがクローリング/スパイダリングをどのように補完するかを学ぶ
  • Bruno/OpenAPIを使用してAPIと直接やり取りする
  • FlaskセッションCookieとJSON Webトークン(JWT)について学ぶ

概要

SEC542 Webアプリケーションペネトレーションテストコースのこのセクションでは、ファジング、APIテスト、脆弱性スキャン、主要なWeb認証方法について深く掘り下げます。Burp Suite Professional Scannerを紹介し、そのスキャン機能がWebアプリケーションにおける実際の脆弱性の特定にどのように役立つかを学びます。

このセクションは、自動スキャナと人間のテスターの両方が使用するコアテクニックであるファジングから始まります。講師は、Nuclei Vulnerability ScannerやBurp Suite Pro Scannerなどのツールを用いた複数のファジング手法を実演し、Webアプリケーション内のすべての入力を体系的にテストすることで、単純なブラウジングでは見逃してしまう欠陥を発見できることを示します。また、情報漏えいの問題と、漏えいしたデータが他の脆弱性の悪用を加速させる可能性についても考察します。コンテキストスキャンにおけるワードリストの重要性、そして慎重に選択されたコンテキスト固有のワードリストが、強制ブラウジングを通じてこれまで発見されていなかったコンテンツや機能を明らかにする方法について学びます。

次に、コースはAPIと、現代のWebアプリケーションにおけるその中心的な役割へと移ります。受講生は、BrunoやOpenAPIを用いた実践的なラボ演習を通して、APIテストの様々なアプローチを探求し、APIエンドポイントにおける脆弱性の特定と悪用を練習します。その後、講師は、Basic認証、Digest認証、統合Windows認証、フォームベース認証といった主要な認証メカニズムに加え、SAML、OAuth、OpenID Connectなどのフェデレーション型IDおよびアクセスプロトコルについて概説します。これらのメカニズムが実際にどのように機能するのか、また、一般的な実装パターンがどのような攻撃対象領域と潜在的な攻撃経路を生み出すのかに焦点を当て、受講生が脆弱性を認識できるよう準備します。

このセクション全体を通して、受講生は、入力のファジング、脆弱性スキャンの実行、強制ブラウジングによるコンテンツ探索、認証関連の脆弱性の具体的な例としてJSON Webトークンへの攻撃など、実践的なスキルに焦点を当てた複数のラボ演習に取り組みます。最終的には、ファジング技術、脆弱性の特定、コンテンツ探索、最新の認証メカニズムと攻撃対象領域に関する実践的な経験を積むことができ、後のセクションで学ぶWebアプリケーションセキュリティテストやペネトレーションテスト手法のための確固たる基盤を築くことができます。

ラボの詳細

  • ファジング入門
    • 目的:
      • Burp Intruder の操作の習得する
      • Intruder の位置とペイロードを理解する
      • Burp を使用して認証フォームのパスワード入力欄を攻撃する
    • 主な演習:
      • Burp にログイン失敗をシードする
      • Burp Intruder を使用してパスワードフィールドをファジングする
      • 結果を分析し、リクエストが成功したことを確認する
  • 脆弱性スキャン
    • 目的:
      • Burp Pro のダイナミックスキャナの設定オプションを調べる
      • Burp Suite を使用して Web アプリケーションの脆弱性を特定する
    • 主な演習:
      • ターゲットアプリケーションに対して脆弱性スキャンを設定して実行する
      • スキャン結果を確認・分析して潜在的な問題を特定する
    • 使用ツール:Burp Suite Pro
  • ffuf 強制ブラウジング
    • 目的:
      • DNS ブルートフォース攻撃で発見したホストを基に構築する
      • アプリケーション内のリンクされていないコンテンツを発見する
      • ffuf の実践的な操作を習得する
      • 強制ブラウジングがクローリング/スパイダリングをどのように補完するかを理解する
    • 主な演習:
      • ffuf を使用するURLをファジングして、ターゲットアプリケーション上の隠されたコンテンツを発見する
      • 強制ブラウジングの結果を分析し、新たなエントリポイントや機密情報を特定する
    • 使用ツール:ffuf
  • Bruno/OpenAPI
    • 目的:
      • APIとの直接的なやり取りを体験する
      • Brunoを使用する
      • APIに特化したファジングにffufを使用する
      • WebアプリケーションのセキュリティテストにBurp Suite Proを使用する
    • 主な演習:
      • OpenAPI定義をBrunoにインポートする
      • ffufを使用してAPIエンドポイントに対してブルートフォースファジングを実行し、隠された機能や脆弱性を発見する
      • Burp Suite Proを統合して、Webアプリケーションのセキュリティテストタスクに活用する
    • 使用ツール:Bruno、ffuf、Burp Suite Pro
  • FlaskセッションCookie
    • 目的:
      • FlaskセッションCookieの技術的な詳細を理解する
      • flask-unsignを使用して、拡張ロールを持つ新しいセッションCookieを作成する
    • 主な演習:
      • オーナーロールを持つFlaskセッションCookieを作成するflask-unsign の使用
      • 偽造したセッション Cookie を利用して、Web アプリケーションの制限された領域にアクセスする
    • 使用ツール: flask-unsign、Burp Suite Pro
  • JSON Web Token への攻撃
    • 目的:
      • JSON Web Token (JWT) の技術的な詳細を理解する
      • Burp Suite Pro を使用して JWT を解読し、署名キーを復元する
      • Burp Suite Pro の JWT エディタを使用して、権限が強化された新しい JWT を作成する
    • 主な演習:
      • Burp Suite Pro を使用してサンプル JWT を分析し、John-the-Ripper (JtR) を使用して解読する
      • Burp Suite Pro の JWT エディタを使用して、所有者権限を持つ新しい JWT を作成する
    • 使用ツール: Burp Suite Pro、JWT エディタ、John-the-Ripper (JtR)

トピックの詳細

  • ファジング
    • 受講者は、Webアプリケーションに予期しないデータを入力して隠れた脆弱性を特定する手法を習得し、セキュリティ上の欠陥を示す可能性のある異常なアプリケーション動作を分析する方法を学びます。
  • 情報漏えい
    • このモジュールを通して、受講者はWebアプリケーション内で機密情報が意図せず漏えいするのを検出する方法を理解し、潜在的なセキュリティリスクに関する洞察を得るとともに、攻撃計画に役立つ隠れた詳細情報を明らかにするための戦略を学びます。
  • Nuclei脆弱性スキャナ
    • 受講者は、Nucleiスキャナのカスタマイズ可能なテンプレートを使用して複数のターゲットを効率的にスキャンする方法を学び、さまざまなWebアプリケーションの脆弱性を迅速かつ正確に特定する能力を高めます。
  • Burp Suite Proスキャナ
    • このモジュールでは、受講者はWebアプリケーションのペネトレーションテストにBurp Suite Proスキャナを使用するための包括的な知識を習得し、自動分析とレポートを通じて詳細なセキュリティ情報を提供するアクティブスキャンとパッシブスキャンの手法を学びます。
  • コンテンツ発見 - 強制ブラウジング
    • ディレクトリのブルートフォース攻撃とパラメータファジングを習得し、開発者が意図せずに公開した隠れたエンドポイントを発見することで、実際の攻撃において攻撃対象領域を劇的に拡大する方法を学びます。
  • API 
    • 受講生は、Brunoなどのツールを使用してAPIの脆弱性を特定し、悪用する方法を学び、バックエンドシステムを操作して機密データを抽出できるようになります。
    • RESTfulおよびSOAPインターフェース、GraphQLクエリ、OpenAPI仕様など、幅広いWebサービスとAPIを探求します。
    • 実践的なラボを通して、受講生はAPIの認証メカニズムを回避する方法を学び、制限された機能にアクセスしたり、隠された機能を発見したりできるようになります。
  • 認証
    • 受講生は、HTTP Basic認証、Digest認証、統合Windows認証、フォームベース認証の複雑な仕組みを復習します。
  • フェデレーションIDおよびアクセスプロトコル
    • 受講生は、OAuth、OpenID Connect、SAMLなどのフェデレーションID管理メカニズムが最新のアプリケーションでどのように機能するかを学びます。
    • 受講生は、セッション管理とアクセス制御のために最新のWebアプリケーションで広く採用されているJSON Webトークン(JWT)を含む、トークンベース認証方法の複雑な仕組みを習得します。

ID、認証/認可バイパス、およびクライアントサイド攻撃

​​このセクションでは、ユーザー名の収集とブラインドパスワードスプレー攻撃から始まり、セッション管理、認証・認可のバイパス、そして保存型、反射型、DOMベースのXSS、ペイロードの構築、データ漏えい、ブラウザの悪用へと進みます。これらの攻撃には、Burp Suite、ffuf、DOM Invader、BeEFなどのツールを使用します。

取り上げられるトピック

  • ユーザー名の収集
  • セッション管理とトークンのランダム性分析
  • 認証・認可のバイパス
  • クロスサイトスクリプティングの概要と影響
  • クライアントサイドテスト、DOM

ラボ

  • ffufを使用して有効なユーザー名をテストする
  • ブラインドユーザー名の収集とパスワードスプレー攻撃を実行する
  • Burp Sequencerを使用してセッショントークンを分析する
  • アカウントを列挙し、認証バイパスを悪用する
  • 保存型、反射型、DOMベースのXSSを発見し、悪用する

概要

このセクションでは、参加者が初期ユーザー名の発見から高度なクライアントサイド攻撃までを段階的に学べる一連のラボが用意されています。ラボはユーザー名の収集から始まり、受講者は認証メカニズムを操作しながら、有効なアカウントを示す手がかりを見つける方法を学びます。ZAPとffufを使用して、名前の頭文字と姓をファジングし、候補となるユーザー名のリストを作成します。次に、HTMLレスポンスに違いが見られる場合に、プログラムによる手法を用いて正当なユーザーを識別します。

次のラボでは、ブラインドユーザー名収集とパスワードスプレー攻撃を紹介します。受講者は、HTMLレスポンスに明らかな違いがない場合でも、有効なユーザー名を識別するためのテクニックを磨きます。その後、Burp Suite Proを使用して、一般的なパスワードでパスワードスプレー攻撃を実行し、アカウントロックアウトをテストすることで、ユーザー名収集と後の認証攻撃との関連性を強化します。

セッション管理については、Burp Suiteのシーケンサーツールを用いた集中的な演習を通して学びます。受講者は、強力なセッション識別子を使用するアプリケーションのセッショントークンのランダム性を分析し、その結果を、シミュレーションされた脆弱なセッショントークンのセットと比較します。学習を進める中で、受講者はセッション改ざん防止対策を確認し、ログアウトと有効期限切れの動作をテストします。これにより、予測可能なトークンや無効化が不十分なトークンが不正アクセスを許してしまう可能性を検証します。

認証と認可のバイパスに関するトピックは、この基礎の上に構築されます。受講者は、パラメータ改ざん、ページへの直接アクセス、SQLインジェクション、セッション固定といった脆弱性を検証した後、オブジェクトレベル認可(OLLA)や関数レベル認可(FLLA)の脆弱性を含む認可の弱点に取り組みます。Burp Suiteを使用し、Burp Intruderで有効なユーザーアカウントを列挙し、受講者アカウントのuidを特定し、HTTP履歴から別のユーザーのuidを推測し、Grep Extractを使用してレスポンスからユーザー名を抽出することで、垂直方向と水平方向の両方の権限昇格経路を実演します。

その後、ラボではクライアントサイド攻撃へと移行します。保存型および反射型クロスサイトスクリプティング(XSS)に関する一連の演習を通して、XSSの発見と概念実証ペイロードの構築のための実践的な手法を学びます。受講者は、ラボターゲットである https://restaurant.sec542.net の注文検索フローにおける保存型XSS脆弱性の影響を実証し、JavaScriptを使用して認証情報の再認証に関する教育課題のための具体的な成果物を作成します。XSSペイロードの構築と配信に関する追加作業では、ChatGPTを使用してキーストロークキャプチャペイロードを構築し、キャプチャしたデータをBurp Collaboratorなどの帯域外インタラクションエンドポイントに送信することで、XSSが機密データの窃取にどのように悪用されるかを示します。受講者は、反射型XSSペイロードを配信およびテストし、注文検索機能における保存型XSSの到達範囲と持続性を分析し、Burp Suite、Collaborator、Python、ChatGPTを補助ツールとして使用して、ChatGPTで認証情報窃盗スタイルのプロンプトを設計します。

最後に、DOMベースのXSSとブラウザの悪用について重点的に学習します。受講者は、純粋DOM、リフレクトDOM、および保存DOMのXSSバリアントを研究し、URLフラグメントやリフレクトJSONなどの要素を使用してクライアントサイドにインジェクションするペイロードを作成し、ブラウザ開発者ツールとPortSwiggerのDOM Invaderを使用してソース、シンク、および実行パスを追跡します。ブラウザ環境でこれらのペイロードをテストした後、ブラウザエクスプロイトフレームワークBeEFに移行し、さまざまなXSSペイロードを調査し、BeEFがブラウザをリダイレクトしたり、認証情報を盗んだり、アラートをトリガーしたりする方法を確認し、クライアントサイドの脆弱性の全体的な影響をまとめます。 

ラボの詳細

  • ユーザー名収集
    • 目的:
      • ユーザー名収集の手法を理解する
      • プログラムによる手法を用いて正当なユーザーを識別する
      • HTMLレスポンスに差異が見られる場合に有効なユーザー名を識別する
      • ffufの高度な機能を探る
    • 主な演習:
      • ffufを使用して、名前の頭文字と姓をファジングし、有効な可能性のあるユーザー名を見つける
    • 使用ツール:ZAP、ffuf
  • ブラインドユーザー名収集とパスワードスプレー攻撃
    • 目的:
      • ブラインドユーザー名収集の手法を理解する
      • プログラムによる手法を用いて正当なユーザーを識別する
      • HTMLレスポンスに差異が見られない場合に有効なユーザー名を識別する
    • 主な演習:
      • ブラインドユーザー名収集を実行する
      • Burp Suite Proと一般的なパスワードを使用してパスワードスプレー攻撃を実行する
      • アカウントロックアウトをテストする
    • 使用ツール:Burp Suite Pro
  • Burp Sequencer:セッショントークンの分析
    • 目的:
      • BurpのSequencer機能を使用する
      • 復習強力なセッショントークンを使用するアプリケーションの分析する
      • 脆弱なセッショントークンを収集するシミュレーションの分析結果を確認する
    • 主な演習:
      • Burp Sequencerを使用して、PHPBBから収集したセッショントークン値のランダム性を分析する
      • 安全でないセッショントークンのセットを生成し、Sequencerツールを使用して分析する
    • 使用ツール:Burp Suite Sequencer
  • 認証バイパス
    • 目的:
      • アプリケーションの認証バイパスを悪用する
      • Burp Intruderを使用して、すべての有効なユーザーアカウントを列挙する。
    • 主な演習:
      • BurpのHTTP Historyを使用して、学生アカウントのuidを特定し、dadamsのuidを推測する
      • BurpのGrep - Extractを使用して、レスポンスからユーザー名を抽出する
    • 使用ツール:Burp Suite
  • 保存型および反射型XSS
    • 目的:
      • 反射型クロスサイトスクリプティングと保存型クロスサイトスクリプティングの違いを理解する。
      • XSSの発見方法と概念実証ペイロードの構築方法を学ぶ
      • ChatGPT を用いたペイロード構築を通して、XSS の影響を実証する
    • 主な演習:
      • ラボターゲット (https://restaurant.sec542.net) の注文検索フローにおける保存型 XSS の影響を実証します。
      • 認証情報の再認証に関する教育課題に対し、JavaScript を使用して具体的な成果物を作成します。
    • 使用ツール:Burp Suite
  • XSS ペイロードの構築と配信
    • 目標:
      • クロスサイトスクリプティング (XSS) が機密データの漏えいにどのように悪用されるかを理解する。
      • キーストロークをキャプチャし、帯域外のインタラクションサーバーに安全に送信する JavaScript ペイロードの構築方法を学ぶ。
      • 管理されたラボ環境で XSS ペイロードの作成と配信を実践する。
    • 主な演習:
      • 反射型 XSS ペイロードの配信とテストを行う。
      • ChatGPTを使用して、キーストロークをキャプチャし、Burp Collaboratorなどの帯域外インタラクションエンドポイントにデータを送信する基本的なXSSペイロードを作成します。
      • 注文検索機能における保存型XSS脆弱性の影響を分析し、到達範囲、永続性、および潜在的なデータ漏えいに焦点を当てます。
      • ChatGPTを使用して、認証情報窃盗プロンプトの教育的な概念実証を設計します。
    • 使用ツール:Burp Suite、Collaborator、Python、ChatGPT
  • DOMベースXSS
    • 目的:
      • DOMベースXSSのクライアントサイドメカニズムを理解する。
      • 実践演習を通して、純粋型、保存型、反射型DOM-XSSの違いを理解する。
      • 純粋型XSSにはURLフラグメント、クライアントサイドインジェクションには反射型JSONを使用するなど、各タイプのDOM-XSSに対応するペイロードを作成する。
      • Developer ToolsやDOM Invaderなどのブラウザベースのツールを使用して、DOM-XSSの脆弱性を発見する方法を学ぶ。
    • 主な演習:
      • ブラウザの開発者ツールとPortswiggerのDOM Invaderを使用して、ソースとシンクの位置を分析し、JavaScriptをデバッグしてDOM-XSSの脆弱性を発見します。
      • 作成したペイロードをブラウザ環境内で実行してテストします。
    • 使用ツール:Burp Suite、DOM Invader、ブラウザ開発者ツール
  • BeEF
    • 目的:
      • BeEFとそのゾンビ制御機能について理解を深める
      • 様々なXSSペイロードを検証し、多様な影響を引き起こす
      • BeEFを使用してブラウザをリダイレクトしたり、認証情報を盗んだり、アラートをトリガーする方法を学ぶ
    • 使用ツール:Browser Exploitation Framework(BeEF)

トピックの詳細

  • ユーザー名収集
    • 受講者は、Webアプリケーションの認証メカニズムを標的とした操作を通じて有効なユーザー名を特定し、さらなる悪用につながる可能性のある侵入ポイントを発見する方法を学ぶ
    • ユーザー名収集技術を活用することで、受講者は候補となるユーザー名の包括的なリストを作成し、その後のパスワード推測攻撃の効率と効果を大幅に向上させることを可能にする
  • セッション管理
    • 受講者は、予測可能なセッション識別子を特定し、改ざん防止制御についての学習
    • セッションの有効期限切れとログアウトのメカニズムをテストする方法を探求し、ユーザーがログアウトした場合やセッションがタイムアウトした場合に、WebアプリケーションがセッションIDを適切に無効化することの保証
    • Burp SuiteのSequencerツールを用いた実践的な演習を通して、受講者はセッショントークンの予測可能性を分析し、不正アクセスやセッションハイジャックにつながる可能性のあるセッション管理の脆弱性の特定
  • 認証と認可のバイパス
    • このトピックでは、パラメータ改ざん、直接ページアクセス、SQLインジェクション、セッション固定など、認証バイパスの脆弱性についての考察
    • 次に、オブジェクトレベル認証の脆弱性や関数レベル認証の脆弱性といった認証の弱点、そして垂直方向と水平方向の権限昇格シナリオについての解説
  • DOM
    • ドキュメントオブジェクトモデル(DOM)と同一オリジンポリシーの概要
  • Web開発者ツール
    • ブラウザに組み込まれている開発者ツールの概要
    • PortSwiggerのDOM Invaderを使用してクライアント側の動作を検査・操作する方法の紹介
  • DOM / クライアント側 / AJAX
    • JavaScriptがブラウザのDOMをどのように変更できるかを探る
    • 非同期JavaScriptとXML(AJAX)のインタラクション例のレビュー
    • クロスオリジンリソース共有(CORS)とそのクライアント側セキュリティへの影響についての解説
  • XSS
    • クロスサイトスクリプティング(XSS)とは何か、そしてそれを発見するための実践的な方法論の説明
    • XSSの主なカテゴリ、特にリフレクテッド型とストアド型に焦点を当てた解説
    • 関連ラボでは、反射型XSSと保存型XSSの実践的な悪用の学習
  • DOMベースXSS
    • 純粋なDOMベースXSSの概要と、それがクライアントサイドロジックでどのように現れるかを解説
    • 重要なサブカテゴリとして、反射型DOM-XSSと保存型DOM-XSSの検証
    • 受講者は、JavaScriptがユーザー制御データをDOMに書き込み、スクリプト実行をトリガーするケースを特定し、悪用するラボを実施
  • ブラウザエクスプロイトフレームワーク
    • ブラウザエクスプロイトフレームワーク(BeEF)を使用して、フックされたブラウザでペイロードの実行
    • 実際のWebアプリケーションにおいて、XSSを利用して被害者のブラウザを制御する方法を実演

プロトタイプ汚染、データベースおよびコマンドインジェクション、SSRF、XXE

受講者は、プロトタイプ汚染とデータベースインジェクション(SQLおよびNoSQL)から始まり、コマンドインジェクション、SSRF、XML外部エンティティへと進み、Burp Suiteやsqlmapなどのツールを使用して、入力レベルの脆弱性から完全なデータアクセスとシステムへの影響へと段階的に進む方法を学びます。

取り上げられるトピック

  • プロトタイプ汚染とJavaScriptの継承モデルの悪用
  • SQLおよびNoSQLインジェクションの手法、分類、影響
  • Burp Suiteを使用したデータベースインジェクションツールと自動化
  • コマンドインジェクションとCollaboratorベースのプロービング
  • SSRFおよびXXE攻撃

ラボ

  • Burpを使用してプロトタイプ汚染を検出し、悪用する
  • エラーベースのSQLインジェクションとNoSQLインジェクションを手動で検出し、悪用する
  • sqlmapとBurp Suiteを組み合わせてSQLインジェクションを悪用する
  • Burp Collaboratorを使用してインラインおよびブラインドコマンドインジェクションを実行する
  • SSRFおよびXXEを特定し、悪用し、深刻な影響を調査する)

概要

このセクションでは、クライアントサイドの悪用からサーバーサイドの深刻な侵害まで、一連のラボ演習を通して、実際のデータと制御への影響に焦点を当てながら学習を進めます。まず、プロトタイプ汚染から始めます。ここでは、JavaScriptの継承モデルの脆弱性を悪用し、オブジェクトに悪意のあるプロパティを注入します。Burp Suiteのスキャナを使用してクロールと監査を行うことで、アプリケーションの動作を操作する実践的な経験を積みます。さらに、プロトコル汚染を利用して承認済みの休暇申請を送信する演習を通して、クライアントサイドの些細な欠陥が深刻なビジネスロジックの問題を引き起こす可能性を実感します。

次に、SQLとNoSQLの両方の技術におけるデータベースインジェクションへと焦点を移します。エラーベースのSQLインジェクション演習では、SQLインジェクションの脆弱性を手動で発見し、データベースのエラーメッセージを引き出し、SQLコメントの有無にかかわらず、エラーを回避しながらデータ漏えいを達成できるよう構文を改善します。NoSQLインジェクション演習では、これらのスキルを最新のデータストアに拡張し、NoSQLインジェクションの脆弱性を特定し、適切なNoSQL構文を決定し、Burp Suiteを使用してワークフローをサポートしながらNoSQLデータベース内のすべてのエントリを列挙します。この基礎の上に、sqlmapとBurpを組み合わせたラボでは、クライアントサイドJavaScriptのバイパス方法、BurpのActive Scannerの使用方法、sqlmapによる自動攻撃の実行方法を学びます。受講者は、SQLインジェクションの脆弱性を手動で悪用し、クレジットカード番号を盗み出し、ユーザー定義ハッシュをダンプし、John the Ripperを使用してオーナー権限を持つユーザーのパスワードをクラックするだけでなく、curlとCeWLも活用します。データベースインジェクションのモジュール全体を通して、受講者は非ブラインドSQLインジェクションにおけるエラーメッセージの利用方法、ブラインドSQLインジェクションにおける間接的な手法の適用方法、そしてエラーベース、ユニオンベース、ブラインド、アウトオブバンドといったデータベースインジェクションのカテゴリについて学びます。さらに、sqlmapとBurp Suiteを主要ツールとして、データベースインジェクションがデータの整合性と機密性に及ぼす影響、そしてシステムレベルのコマンド実行やシステム全体の侵害へとどのように拡張できるかを検証することで、具体的な影響を理解できます。

コマンドインジェクションは、専用のラボとトピックで扱われます。受講者は、目に見える出力やエラーを生成するコマンドを挿入することで、非ブラインドコマンドインジェクションの特定と悪用を練習し、pingやDNSクエリなどの手法を用いてブラインドコマンドインジェクションを検出する方法を学びます。 Burp Collaboratorは、ブラインドコマンドインジェクションを検出し、Collaboratorが制御するエンドポイントへのネットワークリクエストをトリガーすることでデータを漏えいさせるために使用されます。受講者は、セミコロンやパイプなどのコマンドライン記号を利用して、ターゲットシステムに複数のコマンドを注入する方法も学びます。コマンドインジェクションに関するラボでは、Burp Suite、Collaborator、Python、ChatGPTを組み合わせ、Webアプリケーションに対するコマンドインジェクションの実行、偵察と悪用のためのBurpの機能の使用、ChatGPTの支援によるDNSデータ漏えいツールの構築を行います。

このセクションでは、サーバーサイドリクエストフォージェリ(SSRF)とXML外部エンティティについて学習します。SSRFの教材では、サーバーサイドリクエストを制御する入力パラメータを操作することで、SSRFの脆弱性を特定し悪用する方法を学びます。また、メタデータエンドポイントやサービスAPIを介して内部リソースにアクセスできるクラウド環境におけるSSRFの影響についても理解を深めます。最後に、XXEに関するコンテンツと演習では、XML外部エンティティの脆弱性について実践的な経験を積むことができます。不適切なXML処理によって、変数やローカルファイルの読み取り、リモートコンテンツの取得と表示、システムコマンドの実行が可能になる仕組みを学びます。受講者は、ローカルファイルの取得やPHPのexpect://モジュールを介したリモートコード実行などの手法を習得し、ブラインドXXE攻撃と非ブラインドXXE攻撃の違いを理解し、直接的なフィードバックがなくても情報を推測したり、アクションをトリガーしたりする方法を学びます。

ラボの詳細

  • プロトタイプ汚染
    • 目的:
      • プロトタイプ汚染の実践的な経験を積む
      • Burpのスキャナを使用してクロールと監査を行う
      • プロトコル汚染を使用して承認済みの休暇申請を送信する
    • 紹介ツール:Burp Suite
  • エラーベースのSQLインジェクション
    • 目的:
      • SQLインジェクションの脆弱性と攻撃を実際に体験する
      • SQLインジェクションの脆弱性を手動で発見する
      • データベースのエラーメッセージを取得する
      • エラーを回避するための適切な構文を特定する
      • SQLコメントの有無にかかわらず、データ漏えいを実行する
    • 主な演習:
      • WebアプリケーションにおけるSQLインジェクションの脆弱性を発見する
      • SQLインジェクションを悪用してデータを取得する
  • NoSQLインジェクション
    • 目的:
      • NoSQLインジェクションの脆弱性と攻撃を実際に体験する
      • NoSQLインジェクションの脆弱性を手動で発見する
      • 適切なNoSQLインジェクションの構文を特定する
      • NoSQLデータベース内のすべてのエントリを列挙する
    • 主な演習:
      • WebアプリケーションにおけるNoSQLインジェクションの脆弱性を発見する
      • NoSQLデータベースを悪用してデータを取得および操作する
    • 紹介ツール:Burp Suite
  • sqlmap + Burp
    • 目的:
      • クライアント側のJavaScriptをバイパスする
      • sqlmapとBurpを組み合わせてSQLインジェクションの脆弱性を悪用する
      • BurpのActiveを使用するスキャナ
      • SQLインジェクションの脆弱性を手動で悪用する
      • SQLインジェクションを使用してクレジットカード番号を盗む
      • SQLインジェクションを使用してユーザー定義ハッシュをダンプする
      • johnを使用してオーナーロールを持つユーザーのパスワードをクラックする
      • sqlmapの多くの機能を理解する
    • 主な演習:
      • sqlmapとBurp Suiteを使用してSQLインジェクションの脆弱性を特定し悪用する
      • curl、john、CeWLなどのツールを活用して、さらに悪用とクラッキングを行う
    • 紹介するツール:sqlmap、Burp Suite、curl、John the Ripper、CeWL
  • コマンドインジェクション
    • 目的:
      • インライン(可視)コマンドインジェクション攻撃とブラインドコマンドインジェクション攻撃を理解する
      • Burp Collaboratorを使用してブラインドコマンドインジェクションを実行する
      • Burp Collaboratorを使用してデータを外部に漏えいさせる
      • ChatGPTを使用して高度な攻撃ペイロードを構築する経験を積む
    • 主な演習:
      • Webアプリケーションに対してコマンドインジェクション攻撃を実行する
      • 偵察と悪用のためにBurp Suiteの機能を活用する
      • ChatGPTを使用してDNS漏えいツールを構築する
    • ツール紹介ツール:Burp Suite、Collaborator、Python、ChatGPT
  • サーバーサイドリクエストフォージェリ(SSRF)
    • 目的:
      • SSRF、ファジング、エラーコード解析、認証バイパス、インジェクションといった攻撃手法を習得する
      • 複数の脆弱性を連鎖させてデータベースを特定し、ownersテーブルからowner列の内容を取得する
    • 主な演習:
      • Webアプリケーションにおけるサーバーサイドリクエストフォージェリ(SSRF)の脆弱性を特定し、悪用する
      • 偵察と脆弱性発見のためのファジング手法を活用する
    • 紹介ツール:Burp Suite、curl、sqlmap
  • XML外部エンティティ(XXE)
    • 目的:
      • XXE(XML外部エンティティ)の実践的な経験を積む
      • XXEの脆弱性を利用して、変数やローカルファイルを読み取り、リモートコンテンツを取得して表示し、システムコマンドを実行する。
    • 紹介ツール:Burp Suite、curl

トピックの詳細

  • プロトタイプ汚染
    • 受講者は、プロトタイプ汚染の脆弱性を悪用する方法を学びます。JavaScriptの継承モデルを操作してオブジェクトに悪意のあるプロパティを挿入することで、Webアプリケーションに予期しない動作やセキュリティ侵害を引き起こす可能性があります。
  • データベースインジェクション
    • 受講者は、悪意のあるSQLコードをWebアプリケーションに挿入することで、SQLインジェクションの脆弱性を特定し悪用する技術を習得します。
    • SQLインジェクション攻撃を防ぐ上で、入力検証とパラメータ化クエリの重要性を理解します。
    • NoSQL環境における特定のデータベースコマンドと関数を活用する方法を学びます。
  • データベースインジェクションのカテゴリ
    • 受講者は、データベースからのエラーメッセージを使用して、非ブラインドSQLインジェクションの脆弱性を特定する方法を学びます。
    • エラーが返されない場合に、ブラインドSQLインジェクションによってデータベース情報を推測する間接的な方法を探求します。
    • エラーベース、ユニオンベース、ブラインドSQLインジェクションなどのデータベースインジェクションのカテゴリを調査し、それぞれの特徴を比較します。
    • 従来の入力検証メカニズムを回避できる、アウトオブバンドのデータベースインジェクション技術を学びます。
  • データベースインジェクションの影響
    • 受講者は、データベースインジェクションが組織のデータ整合性と機密性に及ぼす影響を理解します。
    • 受講者は、さらなる悪用機会につながる代替的な影響の実証を探求します。
    • 受講者は、データベースインジェクションがデータベース内でシステムレベルのコマンドを実行するためにどのように使用され、システム全体の侵害につながる可能性があるかを学びます。
  • データベースインジェクションツール
    • 受講者は、sqlmapやBurp Suiteなどのツールを実際に使用して、データベースの脆弱性の特定と悪用プロセスを自動化する方法を習得します。
  • コマンドインジェクション
    • 受講者は、目に見える出力やエラーを生成するコマンドを注入することで、非ブラインドコマンドインジェクションの脆弱性を特定し、悪用する方法を学びます。
    • 受講者は、pingやDNSクエリなどのツールを使用してリモートシステムとのシステムインタラクションを監視し、ブラインドコマンドインジェクションを検出する技術を習得します。
    • 受講者は、Burp Collaboratorを使用して、コラボレーターが制御するエンドポイントへのネットワークリクエストをトリガーすることで、ブラインドコマンドインジェクションを検出する方法を探求します。
    • 受講者は、コマンドライン記号(セミコロン、パイプなど)を利用して、ターゲットシステムに複数のコマンドを挿入・実行する方法を理解します。
  • サーバーサイドリクエストフォージェリ(SSRF)
    • 受講者は、入力パラメータを操作してサーバーサイドリクエストを制御することで、サーバーサイドリクエストフォージェリ(SSRF)の脆弱性を特定し、悪用する方法を学びます。
    • 受講者は、メタデータエンドポイントやサービスAPIを介して内部リソースにアクセスできるクラウド環境におけるSSRF攻撃の影響を探究します。
    • 受講者は、データ取得以外の様々な悪用方法を発見します。
  • XML外部エンティティ(XXE)
    • 受講者は、WebアプリケーションにおけるXMLの不適切な処理を分析することで、XML外部エンティティ(XXE)の脆弱性を特定する方法を学びます。
    • 受講者は、ローカルファイルの取得やPHPのexpect://モジュールを介したリモートコード実行など、XXE脆弱性を悪用する技術を習得します。
    • 受講者は、ブラインドXXE攻撃と非ブラインドXXE攻撃の違いを理解し、ブラインドシナリオにおいて直接的なフィードバックなしに情報を推測したり、アクションをトリガーしたりする方法を学びます。

CSRF、シリアライゼーション、SSTI、および高度なツール

このセクションでは、安全でないデシリアライゼーション、ファイルインクルージョン、Pythonによる自動化、SSTI、CSRF、ファイルアップロードの悪用から、Metasploitを用いたポストエクスプロイト、そしてペネトレーションテストのビジネス側面へと進み、技術的な攻撃とログ記録、論理的欠陥、LLMリスク、レポート作成との関連性について解説します。

取り上げられるトピック

  • ファイルインクルージョンと安全でないデシリアライゼーション
  • Webアプリケーションテストを自動化するためのPythonスクリプト作成とピクル化
  • サーバーサイドテンプレートインジェクション
  • セキュリティログ記録と監視の失敗
  • Metasploit Frameworkの使用法

ラボ

  • Javaデシリアライゼーション、情報漏えい、ファイルインクルージョンの連鎖
  • Requestsとhttpxを使用したPythonスクリプトの作成
  • 脆弱性の発見、新しいAPIパスの発見、リモートコード実行の実現
  • BurpまたはZAPによる監査でSSTIとCSRFを発見と悪用
  • ファイルアップロードを利用してWebシェルをデプロイし、リモートコード実行の実現

概要

このセクションでは、高度なWebアプリケーション攻撃手法と、実践的なスクリプト作成、そして実務的なコンサルティングスキルを組み合わせます。まず、Javaのデシリアライゼーションにおける脆弱性を調査します。Burp Suiteとcurlを用いて、ローカルパスを漏えいさせる情報漏えいの問題点を特定し、ysomapを使ってJavaのデシリアライゼーションの脆弱性を悪用し、機密ファイルを盗み出します。さらに、先に漏えいした情報から明らかになったファイルインクルージョンの脆弱性を悪用し、ファイルの内容を読み取ります。この過程で、安全でないデシリアライゼーションとファイルインクルージョンが、設定データやソースコードといった機密ファイルをいかに危険にさらすか、また、ローカルファイルインクルージョンとリモートファイルインクルージョンの両方が、Webサーバーの権限でのリモートコード実行につながる可能性があることを理解します。

次に、Pythonを用いた自動化スキルを強化します。Requestsライブラリとhttpxライブラリを用いて、HTTPレスポンスヘッダーを読み取り標準出力に書き出す、シンプルながら強力なスクリプトを作成し、基本的なディレクトリブルートフォース攻撃スクリプトを構築します。これは、Pythonスクリプトを用いてWebアプリケーションのペネトレーションテストを自動化し、脆弱性発見の効率と精度を向上させるという、より広範な目標を支えるものです。 PythonのPicklingラボでは、デシリアライゼーションのテーマをさらに掘り下げます。受講者はBurp Suite Professionalを使用してアプリケーションを分析し、脆弱性をスキャンし、OpenAPI定義をレビューして新しいAPIパスを特定します。Picklingされたオブジェクトをアップロードして操作することでリモートコード実行を実現し、シリアライズされたデータの操作によって隠れたエントリーポイントが露呈する仕組みや、セキュリティ対策が施されていないシリアライゼーションプロセスの深刻なリスクを、PythonとVisual Studio Codeのワークフローを活用しながら学習します。

サーバーサイドテンプレートインジェクション(SSTI)については、SSTIに特化したラボで学習します。受講者はBurpのスキャナを使用してWebサイトを監査し、SSTIを検出し、概念実証ペイロードを作成します。その後、Webサーバー上のファイルの内容にアクセスしてリモートコード実行を実現することで、SSTIの影響を実証します。これは、サーバーサイドテンプレートインジェクションというより広範なトピック、そしてローカルファイルへのアクセスとコード実行の可能性を直接的に反映したものです。

クロスサイトリクエストフォージェリ(CSRF)については、ZAP Proxyを使用した実践的なCSRFラボで学習します。受講者は、概念実証コードの作成と実行、CSRF脆弱性を悪用した管理者パスワードの変更、被害者の代わりにフォームを送信するJavaScriptによる攻撃の自動化などを通して、CSRF攻撃の実践的な経験を積みます。これは、CSRFの概念的な理解と密接に関連しており、CSRFの発見方法や、認証済みユーザーになりすまして資金移動や設定変更などの不正操作を行う方法を学ぶことができます。

さらに、追加の演習とトピックでは、攻撃後の対応と専門的な実践について理解を深めます。ファイルアップロードとWebシェルに関する演習では、ファイルアップロード機能の検証、基本的なセキュリティ制御を回避しながら概念実証ペイロードをアップロードする演習、そして最後にWebシェルをアップロードしてBurp Suiteを用いたリモートコード実行を実現する演習を行います。 Metasploit ラボでは、Metasploit Framework を実際に操作して体験できます。受講者は msfconsole を操作し、WordPress プラグインの脆弱性を悪用し、PHP Meterpreter ペイロードを操作し、侵害したターゲットから盗んだファイルを保存します。これは、Metasploit を使用して Web アプリケーションにおける公開された脆弱性の影響を実証する高度なモジュールを補完するものです。このセクションの最後には、セキュリティログ記録と監視の失敗について考察し、論理的な欠陥につながる問題を検証し、LLM アプリケーション向けの OWASP Top 10 のうち、Web テストで重要な項目を学び、ペネトレーションテストの計画と範囲設定、技術的な結果をフォローアップと継続的な改善をサポートする効果的なレポート、エグゼクティブ サマリー、および報告に変換することで、ペネトレーションテストのビジネス スキルを開発します。

ラボの詳細

  • 安全でないデシリアライゼーション
    • 目的:
      • Javaのデシリアライゼーションの脆弱性を調査する。
      • 同じアプリケーション内で、ローカルパスを漏洩させる情報漏洩の脆弱性を特定する。
      • 特定したJavaのデシリアライゼーションの脆弱性をysomapで悪用し、/secret.txtに保存されている秘密ファイルを盗み出す。
      • 先に特定した情報漏洩の脆弱性から漏洩したファイルインクルージョンの脆弱性を悪用して、ファイルの内容を読み取る。
    • 主な演習:
      • Burp SuiteとcURLを使用して、特定した脆弱性を悪用する。
      • 発見したすべての脆弱性を連鎖させて、秘密ファイルの内容を取得する。
    • 使用ツール:ysomap、cURL、Burp Suite
  • Python
    • 目的:
      • Requestsライブラリとhttpxライブラリを使用した、シンプルながら強力なPythonスクリプトを作成する。
      • Pythonを使用してHTTPレスポンスヘッダーを読み取り、標準出力に書き出す。
      • シンプルなディレクトリブルートフォーススクリプトを作成する。
    • 使用ツール:Python
  • Pythonのピクル化
    • 目的:
      • 手動検査と自動スキャンを通じて、脆弱性を特定し、悪用する。 OpenAPI定義を用いたAPI探索の方法を理解する。
      • PythonスクリプトとHTTPリクエストを用いて概念実証攻撃を実行する。
    • 主な演習:
      • Burp Proを使用してアプリケーションを分析し、脆弱性をスキャンする。
      • OpenAPI定義を分析し、新たなAPIパスを特定する。
      • pickle化されたオブジェクトをアップロードおよび操作して、リモートコード実行を実現する。
    • 使用ツール:Burp Suite Professional、Python、Visual Studio Code
  • サーバーサイドテンプレートインジェクション(SSTI)
    • 目的:
      • サーバーサイドテンプレートインジェクション(SSTI)の実践的な経験を積む。
      • Burpのスキャナを使用してWebサイトを監査する。
      • SSTIを発見し、悪用する。
    • 主な演習:
      • SSTIの概念実証を構築する。
      • Webサーバー上のファイルの内容にアクセスし、リモートコード実行を実現することで、SSTIの影響を実証する。
    • 紹介ツール:Burp Suite
  • クロスサイトリクエストフォージェリ(CSRF)
    • 目的:
      • クロスサイトリクエストフォージェリ(CSRF)攻撃の実践的な経験を積む。
      • CSRF脆弱性に対するPoCコードを作成・実行する。
      • CSRFエクスプロイトを悪用して管理者のパスワードを変更する。
      • JavaScriptを使用してエクスプロイトを自動化し、被害者のフォームを送信する。
    • 紹介ツール:ZAP Proxy
  • ファイルアップロードとWebシェル
    • 目的:
      • Webアプリケーションのファイルアップロード機能を調査する。
      • PoCペイロードをアップロードし、基本的なファイルアップロード制御を回避する。
      • WebサーバーにWebシェルをアップロードし、リモートコード実行を実現する。
    • 紹介ツール:Burp Suite
  • Metasploit Lab
    • 目的:
      • アプリケーションテストのためのMetasploit Frameworkの実践的な経験を積む。
      • msfconsoleの操作方法を学び、Metasploitを使用してWordPressプラグインの脆弱性を悪用する。
      • PHP Meterpreterペイロードを操作する。
    • 主な演習:
      • 脆弱性を検索して悪用するMetasploitを使用してWordPressプラグインの脆弱性を照合する。
      • 侵害したターゲットから盗み出したファイルを保存する。
    • 使用ツール:Metasploit Framework

トピックの詳細

  • ファイルインクルージョン
    • ローカルファイルインクルージョン(LFI)とリモートファイルインクルージョン(RFI)の脆弱性を発見し、設定データやソースコードなどの機密ファイルがどのように漏洩し、アプリケーションのコアとなる脆弱性が明らかになるかを確認します。
    • LFIとRFIの両方がリモートコード実行につながり、Webサーバーの権限でターゲットシステムを完全に制御できる可能性を探ります。
  • 安全でないデシリアライゼーションのテスト
    • シリアライズされたデータの処理方法をテストすることで、安全でないデシリアライゼーションの脆弱性を発見し、攻撃者の潜在的な侵入ポイントを明らかにします。
    • デシリアライゼーションの欠陥によって、攻撃者がデータを操作したり、リモートコード実行を実現したりする仕組みを理解します。
  • WebアプリケーションペネトレーションテストのためのPython
    • Webアプリケーションのペネトレーションテストを自動化するためのPythonスクリプトを学び、脆弱性発見の効率と精度を高め、高度なWebアプリケーションセキュリティ評価のための強力なツールキットを習得します。
  • Pythonのピクル化
    • ピクル化されたオブジェクトを操作することで、安全でないデシリアライゼーションの脆弱性を特定し、攻撃者の隠れた侵入ポイントを発見する方法を学びます。
    • Pythonのピクル化によるデータ操作の影響を習得し、リモートコード実行を実現することで、安全でないシリアライゼーション処理の深刻なリスクを実証します。
  • サーバーサイドテンプレートインジェクション
    • サーバーサイドテンプレートインジェクションの脆弱性を発見し、ローカルファイルアクセスとリモートコード実行による影響を実証する方法を学びます。
  • クロスサイトリクエストフォージェリ
    • クロスサイトリクエストフォージェリ(CSRF)を発見するためのテクニックを習得します。
    • CSRFの脆弱性を悪用することで、認証済みユーザーになりすまして、資金の送金や設定の変更などの不正な操作が可能になる仕組みを理解します。
  • セキュリティログとモニタリングの失敗
    • Webアプリケーションのログ記録とモニタリングの目的を考察し、アプリケーションセキュリティ監視の構成要素を探究します。
  • 論理的欠陥
    • Webアプリケーションにおける論理的欠陥につながる可能性のある問題の種類について簡単に検証します。
  • LLMアプリケーションにおけるOWASP Top 10
    • LLM Top 10のうち、Webアプリケーションのペネトレーションテストに適用できるものを学び、LLMをアプリケーションと組み合わせる際の考慮事項を探究します。
  • Metasploitペネトレーションテストフレームワーク
    • このモジュールでは、MetasploitがWebアプリケーションにおける公開された脆弱性の影響を実証する上でいかに効果的であるかを、簡潔かつ高レベルで概説します。
  • ペネトレーションテストのビジネス:準備
    • 受講者は、詳細なスケジュール、明確なスコープ文書、行動規範、そして関係者の期待と承認された行動を整合させるコミュニケーション計画を用いて、テストの計画と範囲設定を行う方法を学びます。
  • ペネトレーションテストのビジネス:事後評価
    • 受講者は、技術的な結果を効果的なレポートやエグゼクティブサマリーに変換し、さまざまな対象者に向けて効果的な事後報告を行い、長期的なセキュリティ改善のためのフォローアップと継続的な監視を支援する方法を実践します。

キャプチャー・ザ・フラッグ

セクション6では、受講者はranges.ioプラットフォーム上でチームを組み、Webアプリケーションのペネトレーションテストを行うトーナメントに参加します。このキャプチャー・ザ・フラッグ形式の演習では、学生は新しいスキルや磨き上げたスキルを駆使して質問に答え、ミッションを完了し、データを抜き出し、あらゆるスキルレベルに対応し学習を強化するヒントを活用しながら、段階的に難易度が上がる課題に取り組みます。

NRIセキュアではNews BitesやOUCH! を日本語に翻訳して皆さまにお届けしています。
購読制を採っておりますので、
ご希望の方は、ニュースレター登録からお申し込みください。