Shikata Ga Nai

Private? There is no such things.

LAB: Stored XSS – HTMLコンテキストにおけるエンコードなし

Hello there, ('ω')ノ

🎯 目的

このラボでは、コメント機能に保存型XSS(Stored XSS)の脆弱性があります。ユーザーが投稿したコメントが適切にサニタイズされずに他の閲覧者に表示されることで、JavaScriptが実行されてしまいます。


🧪 攻撃手順(解説付き)

1. 任意のブログ記事を開く

  • 「Post comment(コメントを投稿)」セクションへ進みます。

2. 以下のスクリプトを「Comment」欄に入力:

<script>alert(1)</script>

alert(1) はXSSが実行されたかを確認するための基本的なペイロードです。

3. 名前、メールアドレス、ウェブサイトを適当に入力

  • 名前: test
  • メール: test@example.com
  • ウェブサイト: https://example.com

4. 「Post comment」をクリック

5. ブログページに戻る

  • コメントが表示されると同時に alert(1) が実行されれば、攻撃成功です。

🔍 なぜ脆弱なのか?

  • コメント内容がHTMLにそのまま挿入されており、
  • <script> タグがフィルタリングされていないため、
  • ブラウザがスクリプトとして認識し、実行してしまうのです。

✅ ポイントまとめ

  • 保存型XSSは、一度入力した悪意のあるデータが、後に他のユーザーのリクエストで表示され、XSSが成立する攻撃。
  • このタイプのXSSは、自動実行されるため非常に危険です。
  • 被害者がログイン状態である必要があるケースでも確実に攻撃可能です。

Best regards, (^^ゞ