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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
JAW — JAW: クライアントサイドJavaScriptのためのグラフベースのセキュリティ分析フレームワーク | Kitploit
ツール/GitHubGitHub/soheilkhodayari/jaw
静的分析動的分析 (サンドボックス)脆弱性分析コード分析ウェブセキュリティペネトレーションテストクローラーデータベースセキュリティ
GitHubsoheilkhodayari/jaw

JAW

JAW: クライアントサイドJavaScriptのためのグラフベースのセキュリティ分析フレームワーク

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

人気

すべて見る →

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

すべてのツールを探索

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

すべてのツールを見る →
ウェブサイト
共有

JAW

J A W

Webサイト | ドキュメント | セットアップ | クローラ | クイックスタート | Docker(例)

JAW

Node Platform Open Source Love Tweet

JavaScript用のプロパティグラフのオープンソース・プロトタイプ実装です。esprima パーサと EsTree SpiderMonkey Spec に基づいています。JAWは、WebアプリケーションのクライアントサイドやJavaScriptベースのプログラムの解析に使用できます。

このプロジェクトは GNU AFFERO GENERAL PUBLIC LICENSE V3.0 の下でライセンスされています。詳細はこちらをご覧ください。

JAWはGithub PagesのWebサイトを https://soheilkhodayari.github.io/JAW/ で公開しています。

リリースノート:

  • 2025年9月、JAW-v5: このforkを通じてDOMガジェット検出をサポート。
  • 2024年12月、JAW-v4: オープンリダイレクト検出クエリでJAWを更新。
  • 2023年10月、JAW-v3 (Sheriff): クライアントサイドリクエストハイジャック脆弱性を検出するためにJAWを更新。
  • 2022年7月、JAW-v2 (TheThing): DOM Clobbering脆弱性を検出する機能を備えたJAWの次期メジャーリリースに更新。JAW-V2ブランチを参照。
  • 2020年12月、JAW-v1: 最初のプロトタイプバージョン。JAW-V1ブランチを参照。

コンテンツ

JAWの概要

  1. テスト入力
  2. データ収集
  3. HPG構築
  4. 解析と出力

セットアップ

  1. インストール

クイックスタート

  1. パイプラインの実行
  2. クイック例
  3. クローリングとデータ収集
    • Foxhoundを使用したPlaywright CLI
    • Puppeteerベースのクローラ
    • Seleniumベースのクローラ
  4. グラフ構築
    • HPG構築CLI
    • HPGインポートCLI
  5. セキュリティ解析
    • カスタムグラフトラバーサルの実行
    • 脆弱性検出
  6. テスト用Webアプリケーション

詳細情報

  1. 詳細ドキュメント
  2. 貢献と行動規範
  3. 学術論文

JAWの概要

JAWのアーキテクチャを以下に示します。

テスト入力

JAWは2つの異なる方法で使用できます。

  1. 任意のJavaScript解析: プログラムのファイルシステム path を指定することで、任意のJavaScriptプログラムのモデリングと解析にJAWを利用します。
  2. Webアプリケーション解析: 単一のシードURLを指定してWebアプリケーションを解析します。

データ収集

  • JAWは、Webリソースを大規模に収集するための、JavaScript対応のWebクローラを複数備えています。

HPG構築

  • 収集したWebリソースを使用してハイブリッドプログラムグラフ(HPG)を作成し、Neo4jデータベースにインポートします。
  • オプションで、セマンティックタイプとカスタムJavaScript言語トークンのマッピングをHPG構築モジュールに提供することで、JavaScript関数をその目的(例:HTTPリクエスト関数)に基づいて分類できます。

解析と出力

  • 構築された Neo4j グラフデータベースを様々な解析のためにクエリします。JAWは、データフロー解析、制御フロー解析、到達可能性解析、パターンマッチングのためのユーティリティトラバーサルを提供します。これらはカスタムのセキュリティ解析の開発に使用できます。
  • JAWには、クライアントサイドCSRF、DOM Clobbering、リクエストハイジャックの脆弱性を検出するための組み込みトラバーサルも含まれています。
  • 出力は入力と同じフォルダに保存されます。

セットアップ

インストールスクリプトは以下の前提条件に依存します。

  • npm package manager(node js)の最新バージョン
  • python 3.x の安定版
  • Python pip パッケージマネージャ

その後、以下で必要な依存関係をインストールします。

$ ./install.sh

詳細なインストール手順については、こちらを参照してください。

クイックスタート

パイプラインの実行

パイプラインのインスタンスをバックグラウンド画面で実行するには、以下を実行します。

$ python3 -m run_pipeline --conf=config.yaml

CLIは以下のオプションを提供します。

$ python3 -m run_pipeline -h

usage: run_pipeline.py [-h] [--conf FILE] [--site SITE] [--list LIST] [--from FROM] [--to TO]

This script runs the tool pipeline.

optional arguments:
  -h, --help            show this help message and exit
  --conf FILE, -C FILE  pipeline configuration file. (default: config.yaml)
  --site SITE, -S SITE  website to test; overrides config file (default: None)
  --list LIST, -L LIST  site list to test; overrides config file (default: None)
  --from FROM, -F FROM  the first entry to consider when a site list is provided; overrides config file (default: -1)
  --to TO, -T TO        the last entry to consider when a site list is provided; overrides config file (default: -1)

入力設定: JAWは入力として .yaml 設定ファイルを期待します。例は config.yaml を参照してください。

ヒント: 設定ファイルは異なるパス(例: クローリング、静的解析など)を指定し、脆弱性クラスごとに有効/無効を切り替えることができます。これにより、ツールのビルディングブロックを個別に、または異なる順序(例: 最初にすべてのWebアプリをクロールし、その後セキュリティ解析を実施)で実行できます。

クイック例

プロパティグラフを構築し、その上でCypherクエリを実行する方法を示すクイック例を実行するには、以下を実行します。

$ python3 -m analyses.example.example_analysis --input=$(pwd)/data/test_program/test.js

クローリングとデータ収集

このモジュールは、テストに必要なデータ(JavaScriptコードとWebページの状態値)を収集します。すでにファイルシステム上に特定のJavaScriptファイルがある場合は、このステップをスキップできます。

JAWには、Selenium(JAW-v1)、Puppeteer(JAW-v2、v3)、Playwright(JAW-v3)に基づくクローラがあります。最新の機能については、PuppeteerまたはPlaywrightベースのバージョンを使用することをお勧めします。

Foxhoundを使用したPlaywright CLI

このWebクローラは、foxhound(Firefoxの計装版)を使用して、Webページを移動しながら動的タイントラッキングを実行します。クローラを起動するには、以下を実行します。

$ cd crawler
$ node crawler-taint.js --seedurl=https://google.com --maxurls=100 --headless=true --foxhoundpath=<optional-foxhound-executable-path>

foxhoundpath はデフォルトで crawler/foxhound/firefox ディレクトリに設定されており、firefox というバイナリが含まれています。

注意: このバージョンを使用するには、foxhound のビルドが必要です。UbuntuビルドはJAW-v3のリリースに含まれています。

Puppeteer CLI

クローラを起動するには、以下を実行します。

$ cd crawler
$ node crawler.js --seedurl=https://google.com --maxurls=100 --browser=chrome --headless=true

詳細はこちらを参照してください。

Selenium CLI

クローラを起動するには、以下を実行します。

$ cd crawler/hpg_crawler
$ vim docker-compose.yaml # クロールしたいWebサイトをここに設定して保存
$ docker-compose build
$ docker-compose up -d

hpg_crawler のドキュメントはこちらを参照してください。

グラフ構築

HPG構築CLI

特定の(複数の)JavaScriptファイルのHPGを生成するには、以下を実行します。

$ node engine/cli.js  --lang=js --graphid=graph1 --input=/in/file1.js --input=/in/file2.js --output=$(pwd)/data/out/ --mode=csv
ツールをダウンロード