Skip to content
KitploitKITPLOIT
ツールブログ
提出
ツールブログ
提出

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
domdig — Single Page Applications向けDOM XSSスキャナー | Kitploit
ツール/GitHubGitHub/fcavallarin/domdig
脆弱性スキャナーウェブ脆弱性スキャナー動的分析 (サンドボックス)ウェブセキュリティファジング
GitHubfcavallarin/domdig

domdig

Single Page Applications向けDOM XSSスキャナー

リポジトリを見る
4205010ヶ月前Kitploit レビュー済み

人気

すべて見る →

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

すべてのツールを探索

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

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

DOMDig

DOMDigは、Chromiumウェブブラウザ内で動作するDOM XSSスキャナであり、シングルページアプリケーション(SPA)を再帰的にスキャンできます。
他のスキャナとは異なり、DOMDigはDOMの変更やXHR/fetch/websocketリクエストを追跡することで、あらゆるウェブアプリケーション(gmailを含む)をクロールでき、イベントを発火させることで実際のユーザー操作をシミュレートできます。このプロセス中に、XSSペイロードが入力フィールドに挿入され、その実行が追跡されることで、インジェクションポイントと関連するURLの変更が特定されます。
htcrawlをベースにしており、gmailアカウントを簡単にクロールできるほど強力なNodeライブラリです。

主な機能

  • 実際のブラウザ(Chromium)内で動作
  • 再帰的DOMクローリングエンジン
  • XHR、fetch、JSONP、websocketリクエストを処理
  • Cookie、プロキシ、カスタムヘッダー、HTTP認証などをサポート
  • スクリプト可能なログインシーケンス
  • シーケンスレコーダー
  • postMessageファザー

はじめに

インストール

root@kitploit:~
git clone https://github.com/fcavallarin/domdig.git
cd domdig && npm i && cd ..
node domdig/domdig.js

使用例

root@kitploit:~
node domdig.js -c 'foo=bar' -p http:127.0.0.1:8080 https://fcvl.net/htcap/scanme/domxss.php

実行されるチェック

DOMDigは3つの異なるチェックを実行できます。

  1. DOM XSS
  2. Stored DOM XSS
  3. Template Injection
  4. postMessage XSS

DOM XSS

DOM XSSチェックは異なるモードで設定でき、異なる動作を可能にします。デフォルトではすべてのモードが有効です。
モードは以下の通りです。

  1. domscan
  2. fuzz

domscan

DOMをクロールし、ユーザーがJavaScriptコードを注入できる場所(テキストボックスなど)を検索します。スキャナでは推測できないインジェクションポイントを発見できます。例としては、入力ボックスのテキストを受け取り、検索をトリガーするためにJSON文字列としてURLのハッシュに格納する検索機能が挙げられます。

fuzz

URL(クエリパラメータとハッシュ)をファジングし、ページ読み込み時にコードが実行されるかどうかを確認します。コードが実行されない場合は、DOMをクロールしてHTMLイベントをトリガーし、ペイロードを実行する何かを見つけようとします。
また、古典的な反射型XSSも発見できます。

保存型DOM XSS

DOM XSSチェックが実行された後、DOMDigは同じページをクロールし、以前使用されたペイロードの実行を待ちます。ペイロードが見つかった場合、それはページのリロード後も永続することを意味します。

テンプレートインジェクション

テンプレートプレースホルダー(例:{var1})がJavaScriptコードとして評価される可能性のある場所を検索します。

報告される脆弱性

報告される各脆弱性には以下のフィールドが含まれます。

  1. type: 脆弱性の種類。domxss、stored、templateinjのいずれか。
  2. url: 脆弱性が見つかったページのURL。
  3. payload: 使用されたペイロード。
  4. element: ペイロードが注入されたHTML要素のCSSセレクタ(存在する場合)。
  5. description: テキストによる説明。
  6. confirmed: URLに攻撃ペイロードが含まれている場合、脆弱性は確認済みと見なされます。確認されていない場合、コードは正常に実行されたが、注入されたペイロードとURLスキームの関係を理解するために手動分析が必要な可能性があります。

クロールエンジン

DOMDigはクロールエンジンとしてhtcrawlを使用しています。
図は再帰的なクローリングプロセスを示しています。
SPAクローリング図。
以下の動画は、エンジンがGmailをクロールしている様子です。クロールは数時間続き、約3000のXHRリクエストがキャプチャされました。

crawling gmail

ログインシーケンス

ログインシーケンス(または初期シーケンス)は、スキャン開始前に実行するアクションのリストを含むJSONオブジェクトです。 リストの各要素は配列で、最初の要素は実行するアクションの名前、残りの要素はそれらのアクションへの「パラメータ」です。 アクションは以下の通りです。

  • navigate <url>
  • write <selector> <text>
  • select <selector> <value>
  • click <selector>
  • clickToNavigate <selector>
  • sleep <seconds>
  • setTarget <selector>

例

root@kitploit:~
[
   ["navigate", "https://target.local/login-page"],
   ["write", "#username", "demo"],
   ["write", "#password", "demo"],
   ["sleep", 2],
   ["clickToNavigate", "#btn-login"]
]

ペイロードファイル

ペイロードはJSONファイル(-Pオプション)から文字列の配列として読み込むことができます。カスタムペイロードを作成するには、文字列 window.___xssSink({0}) を実行する関数として使用する必要があります(従来の alert(1) の代わりに)。

例

root@kitploit:~
[
   ';window.___xssSink({0});',
   '<img src="https://raw.githubusercontent.com/fcavallarin/domdig/HEAD/a" onerror="window.___xssSink({0})">'
]
ツールをダウンロード