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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
PyJFuzz — PyJFuzz - Python JSON ファザー | Kitploit
ツール/GitHubGitHub/mseclab/pyjfuzz
動的分析 (サンドボックス)脆弱性分析APIセキュリティテストウェブセキュリティファジング
GitHubmseclab/pyjfuzz

PyJFuzz

PyJFuzz - Python JSON ファザー

リポジトリを見る
37767153年前Kitploit レビュー済み

人気

すべて見る →

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

すべてのツールを探索

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

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

LOGO

PyJFuzzは、モバイルエンドポイントREST API、JSON実装、ブラウザ、CLI実行可能ファイルなど、JSON入力をファジングするための小さく拡張可能ですぐに使えるフレームワークです。

バージョン 1.1.0
ホームページ http://www.mseclab.com/
GitHub https://github.com/mseclab/PyJFuzz
著者 Daniele Linguaglossa (@dzonerzy)
ライセンス MIT - (LICENSEファイルを参照)

インストール

依存関係

PyJFuzzが動作するにはいくつかの依存関係が必要です:bottle,netifaces,GitPython,gramfuzz。自動のsetup.pyインストールからインストールできます。

インストール

PyJFuzzは以下のコマンドでインストールできます:

git clone https://github.com/mseclab/PyJFuzz.git && cd PyJFuzz && sudo python setup.py install

ドキュメントと例

CLIツール

インストールすると、PyJFuzzはPythonライブラリとpjfと呼ばれるコマンドラインユーティリティの両方を作成します(下のスクリーンショット)

MENU

PJF

ライブラリ

PyJFuzzはライブラリとしても機能し、以下のようにプロジェクトにインポートできます:

from pyjfuzz.lib import *

クラス

利用可能なオブジェクト/クラスは以下の通りです:

  • PJFServer - 組み込みHTTPおよびHTTPSサーバーの起動と停止に使用します
  • PJFProcessMonitor - プロセスクラッシュの監視に使用します。クラッシュするたびにプロセスを自動的に再起動します
  • PJFTestcaseServer - PJFProcessMonitorと組み合わせて使用するテストケースサーバー。プロセスクラッシュ時に、クラッシュの原因となったJSONを登録して保存します
  • PJFFactory - JSONオブジェクトの実際のファジングを行うメインオブジェクト
  • PJFConfiguration - 各利用可能なオブジェクトの設定ファイル
  • PJFExternalFuzzer - PJFactoryが使用する補助クラスで、radamsaなどの他のコマンドラインファザーへのインターフェースを提供します
  • PJFMutation - PJFFactoryが使用し、ファジングセッション中に使用されるすべてのミューテーションを提供します
  • PJFExecutor - 外部プロセスと対話するためのインターフェースを提供します

CLASSES

例

以下はPyJFuzzを利用したプログラムの簡単な実装例です:

simple_fuzzer.py

from argparse import Namespace
from pyjfuzz.lib import *

config = PJFConfiguration(Namespace(json={"test": ["1", 2, True]}, nologo=True, level=6))
fuzzer = PJFFactory(config)
while True:
    print fuzzer.fuzzed

custom_techniques.py

from argparse import Namespace
from pyjfuzz.lib import *

# テクニックはグループ、またはテクニック番号で定義できます
# グループはCHTPRSXです。それぞれの意味を理解するには、pyjfuzzを -h スイッチで実行するか、コマンドラインのスクリーンショットを参照してください
# 以下では、P グループ(Path Traversal)の攻撃のみを使用する設定オブジェクトを初期化します
config = PJFConfiguration(Namespace(json={"test": ["1", 2, True]}, nologo=True, level=6, techniques="P"))
# 設定オブジェクトが定義されたら、config.techniques にアクセスして選択されたテクニックを確認できます
print("Techniques IDs: {0}".format(str(config.techniques)))
# 必要に応じて変更することもできます!
config.techniques = [2]
# これにより、攻撃番号2(LFI攻撃)のみが実行されます
fuzzer = PJFFactory(config)
while True:
    print fuzzer.fuzzed

simple_server.py

from argparse import Namespace
from pyjfuzz.lib import *

config = PJFConfiguration(Namespace(json={"test": ["1", 2, True]}, nologo=True, level=6, debug=True, indent=True))
PJFServer(config).run()

時には、標準のカスタマイズ不可能な設定を変更する必要があるかもしれません。これは以下の方法で行えます:

from argparse import Namespace
from pyjfuzz.lib import *

config = PJFConfiguration(Namespace(json={"test": ["1", 2, True]}, nologo=True, level=6, indent=True))
print config.ports["servers"]["HTTP_PORT"]   # 8080
print config.ports["servers"]["HTTPS_PORT"]  # 8443
print config.ports["servers"]["TCASE_PORT"]  # 8888
config.ports["servers"]["HTTPS_PORT"] = 443  # HTTPSポートを443に変更

注意: デフォルトポートを変更する場合、必要な権限による例外を常に処理する必要があります!

以下は、PJFConfigurationオブジェクトの利用可能なすべての設定/カスタマイズの包括的なリストです:

設定表

名前 型 説明
json dict ファジングするJSONオブジェクト
json_file str JSONファイルへのパス
parameters list<str> ファジングするパラメータのリスト(JSONオブジェクトから取得)
techniques str<int> 有効な攻撃の文字列。ファジングされたJSONを生成するために使用されます(例:XSS、LFIなど)。つまり"CHPTRSX"(テクニック表を参照)
level int ファジングレベル(0~6の範囲)
utf8 bool trueの場合、Unicodeエンコードから純粋なバイト表現に切り替えます
indent bool 結果オブジェクトにインデントを付けるかどうかを設定します
url_encode bool 結果オブジェクトをURLエンコードするかどうかを設定します
strong_fuzz bool 強いファジングを使用するかどうかを設定します(強いファジングはJSON構造を維持せず、パーサーファジングに便利です)
debug bool デバッグ出力を有効にするかどうかを設定します
exclude bool parametersオプションで選択されたパラメータをファジングから除外します
notify bool クラッシュ発生時にプロセスモニターに通知するかどうかを設定します。PJFServerでのみ使用されます
html str PJFServer内で提供するHTMLディレクトリへのパス
ext_fuzz bool "command"のバイナリを外部ファザーとして使用するかどうかを設定します
cmd_fuzz bool "command"のバイナリをファザーターゲットとして使用するかどうかを設定します
content_type str PJFServerのコンテンツタイプの結果を設定します(デフォルトはapplication/json)
command list<str> 実行するコマンド。各パラメータはリスト要素です。pythonのshlex.splitを使用できます

テクニック表

インデックス 説明
0 XSSインジェクション (ポリグロット)
1 SQLインジェクション (ポリグロット)
2 LFI攻撃
3 SQLインジェクションポリグロット (2)
4 XSSインジェクション (ポリグロット) (2)
5 RCEインジェクション (ポリグロット)
6 LFI攻撃 (2)
7 データURI攻撃
8 LFIおよびHREF攻撃
9 ヘッダーインジェクション
10 RCEインジェクション (ポリグロット) (2)
11 汎用テンプレートインジェクション
12 Flaskテンプレートインジェクション
13 ランダム文字攻撃

スクリーンショット

以下は、PyJFuzzで何が期待できるかを示すスクリーンショットです

CLI

CLI2

CLI3

組み込みツール

PyJFuzzにはPyJFuzz Web Fuzzerと呼ばれる組み込みツールが同梱されています。このツールはHTTPおよびHTTPSサーバーを介して自動ファジングコンソールを提供します。プロセス状態を制御できない場合でも、ほぼすべてのWebブラウザを簡単にファジングするために使用できます。

このツールを起動するための2つのスイッチがあります(--browser-auto と --fuzz-web)。1つ目はクラッシュ発生時にブラウザを自動的に再起動し、2つ目はブラウザがリクエストを送らなくなった場合をキャッチします。どちらも常にテストケースを保存します。以下にスクリーンショットを示します。

FUZZ

FUZZ2

BROWSERAUTO

ツールをダウンロード