Shikata Ga Nai

Private? There is no such things.

Finding and Exploiting Stored XSS VulnerabilitiesのHACK STEPSについてまとめてみた

Hello there, ('ω')ノ

 

保存されているXSSの脆弱性を見つけて悪用する手順を。

 

 1.アプリケーション内のすべての可能な場所に一意の文字列を送信したら、

  アプリケーションのすべてのコンテンツと機能をもう一度確認して、

  この文字列がブラウザに表示されるインスタンスを特定する必要があります。

  1つの場所に入力されたユーザ制御可能なデータ

  (たとえば、個人情報ページの名前フィールド)

  は、アプリケーション全体のさまざまな場所に表示される場合があります。

  (たとえば、ユーザのホームページ、登録ユーザのリスト、

   タスクなどのワークフローアイテム、他のユーザの連絡先リスト、

   ユーザが投稿したメッセージや質問、

   またはアプリケーションログにある可能性があります。 )

  ストリングの各外観は、異なる保護フィルターの対象となる可能性があるため、

  個別に調査する必要があります。

 

 2.可能であれば、

  管理者がアクセスできるアプリケーションのすべての領域を確認して、

  管理者以外のユーザが制御できるデータの外観を特定する必要があります。

  たとえば、アプリケーションは、

  管理者がブラウザ内のログファイルを確認できるようにする場合があります。

  このタイプの機能には、

  攻撃者が悪意のあるHTMLを含むログエントリを生成することによって

  悪用できるXSSの脆弱性が含まれていることが非常に一般的です。

 

3.アプリケーション内の各場所にテスト文字列を送信する場合、

  各ページに各パラメータとして投稿するだけでは不十分な場合があります。

  送信されたデータが実際に保存される前に、

  多くのアプリケーション機能をいくつかの段階で実行する必要があります。

  たとえば、新しいユーザの登録、買い物の注文、送金などのアクションには、

  定義された順序でいくつかの異なるリクエストを送信することが含まれることが

  よくあります。

  脆弱性を見逃さないようにするには、

  各テストケースを最後まで確認する必要があります。

 

4.反映されたXSSを調査するときは、

  制御できる被害者の要求のあらゆる側面に関心があります。

  これには、リクエストのすべてのパラメータ、すべてのHTTPヘッダなどが

  含まれます。

  保存されたXSSの場合、アプリケーションが制御可能な入力を受信して​​

  処理する帯域外チャネルも調査する必要があります。

  このようなチャネルは、

  保存されたXSS攻撃を導入するための適切な攻撃ベクトルです。

  アプリケーションマッピングの演習の結果を確認して、

  攻撃対象領域のすべての可能な領域を特定します。

 

5.アプリケーションで

  ファイルのアップロードとダウンロードが許可されている場合は、

  保存されているXSS攻撃について常にこの機能を調べてください。

 

6.制御するデータがアプリケーションによって保存され、

  他のユーザに表示される可能性のある他の可能な手段について

  想像力を働かせて考えてください。

  たとえば、アプリケーション検索機能が人気のある検索項目のリストを

  表示する場合、主要な検索機能自体が入力を安全に処理していても、

  保存されているXSSペイロードを何度も検索することで

  導入できる場合があります。

 

Best regards, (^^ゞ