Threats and Attacks

XSS(クロスサイトスクリプティング)とは?

クロスサイトスクリプティング、またはXSSは、攻撃者が有害なスクリプトをウェブページに追加できるウェブサイトのセキュリティ欠陥です。これらのスクリプトはほとんどの場合、JavaScriptで書かれています。

XSS(クロスサイトスクリプティング)とは何か?

クロスサイトスクリプティング、またはXSSは、攻撃者が有害なスクリプトをウェブページに追加できるウェブサイトのセキュリティ欠陥です。ほとんどの場合、これらのスクリプトはJavaScriptで書かれています。

XSSの影響を受けたページを誰かが訪れると、そのブラウザは攻撃者のスクリプトを実行します。これにより、クッキーの盗難、セッションのハイジャック、またはユーザーの許可なしに行動が取られる可能性があります。

XSSは、SQLインジェクションのように、OWASP Top 10に定期的にリストされる最も一般的なウェブアプリケーションの脆弱性の一つです。

plexicus-xss-attack-ilustration

XSSの仕組み

XSSは、ユーザー入力を正しくチェックおよびクリーンアップしないウェブアプリケーションを狙うことがよくあります。

例えば、コメントボックスが生のHTMLやJavaScriptをフィルタリングなしで許可する場合、攻撃者は次のようなコードを追加することができます:

<script>alert('Hacked!');</script>

被害者がページを閲覧すると、悪意のあるコードがそのブラウザ内で実行されます。

サイバーセキュリティにおけるXSSの重要性

XSSはより大きな侵害につながる可能性があります:

  • アカウント乗っ取り(セッションクッキーを盗んでユーザーを偽装)
  • データ盗難(パスワードやクレジットカードのようなフォーム入力をキャプチャ)
  • フィッシング攻撃(偽のログインフォームを注入)
  • マルウェア配信(ユーザーを悪意のあるウェブサイトにリダイレクト)

XSSの種類

  1. DOMベースのXSS
  2. 攻撃は完全にブラウザ内で、サーバーを介さずにDocument Object Model (DOM)を操作することによって発生します。
  3. 保存型XSS
  4. 悪意のあるスクリプトがサーバー上に永久に保存されます。例えば、データベースやプロフィールページなどです。
  5. 反射型XSS
  6. スクリプトがウェブサーバーから反射されます(例:URLやエラーメッセージ内)。攻撃者が作成したリンクを被害者がクリックすると、スクリプトが実行されます。

XSSを防ぐ方法

  • 入力のサニタイズと出力のエンコード : ユーザー入力データを処理する前に常にクリーニングし、安全な形式に変換します。
  • コンテンツセキュリティポリシー (CSP) の使用 : ブラウザで実行できるスクリプトを制限します。
  • eval()とインラインJavaScriptの回避 : 注入リスクを減らすためです。
  • セキュリティテスト (DAST/IAST) : 脆弱性を早期に検出するためにセキュリティテストを実行します。

実際のケースでの例 - Samyワーム (MySpace, 2005)

何が起こったか: Samy Kamkarは、保存型XSSペイロードを含むMySpaceプロフィールを公開しました。他のユーザーがそのプロフィールを閲覧すると、ペイロードが彼らのブラウザで実行され、(a) Samyを友達として追加し、(b) 彼らのプロフィールに「Samy is my hero」というフレーズを追加し、(c) そのユーザーのプロフィールページに自己複製しました。

影響: ワームは約20時間以内に約100万人のユーザーに自己伝播し、MySpaceを一時的にオフラインにしました。

なぜ機能したのか: MySpaceはプロフィールフィールドでエスケープされていないHTML/属性を許可しており、訪問者のブラウザで保存されたスクリプトの実行を可能にしました。

レッスン / 修正: 適切な出力エンコーディング、入力のサニタイズ、プロフィールフィールド内のHTMLの削除、迅速なパッチ適用。サミーは後に法的な結果に直面し、MySpaceはフィルターを展開しました。

関連用語

Ready to validate what matters?

Ready to validate what matters?

Plexicus is Proof-Driven AppSec: validated findings, contextual understanding, and reviewed remediation — anchored in evidence, scoped with you.

Qualification

Check whether AI Swarm Pentest fits your environment.

Share the minimum context. We will review the scope and tell you the next commercial step.

Before submitting — verify you fit

Teams with fewer than 50 developers: start a 14-day Trial instead of booking a demo. Start a 14-day Trial →

0 / 280

No commitment. If you don't fit, we'll tell you.

SAMPLE HANDOVER · ILLUSTRATIVE

Sample evidence handover

A trimmed view of what your team receives at the end of an AI Swarm Pentest engagement. Real engagements include full technical evidence, executive narrative, and a remediation plan.

VALIDATED FINDING Evidence attached

Server-Side Request Forgery in webhooks/receiver

demo-project/sample-app · src/webhooks/receiver.py:42

SeverityHigh CVSS 3.18.6 Priority79 Confirmedvia replay

Untrusted caller-supplied URLs reach an internal egress without an allowlist. Replayed in a sandbox against a fresh authorised target — the same control was validated to fail twice.

REVIEWER-READY REMEDIATION Merge-ready PR

Validate the target URL against an allowlist of permitted hostnames. Reject private/internal IP ranges. Enforce HTTPS only.

plexicus/remediation/webhooks-ssrf 3 changed · 0 new files
42resp = requests.get(target_url)
42+if not is_allowed_host(target_url):
43+  raise WebhookRejected(target_url)
44+resp = requests.get(target_url, timeout=5)
Every engagement hands over:
  • Executive briefing
  • Validated findings list
  • Merge-ready PRs
  • Compliance mapping (NIS2 · DORA · CRA)