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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
recollapse — ブラックボックス正規表現ファジングツール。Webアプリケーションにおいて、入力検証をバイパスし、正規化を発見し、WAFを回避するペイロードを生成します。 | Kitploit
ツール/GitHubGitHub/0xacb/recollapse
ペイロード生成WAFバイパスウェブセキュリティファジング
GitHub0xacb/recollapse

recollapse

ブラックボックス正規表現ファジングツール。Webアプリケーションにおいて、入力検証をバイパスし、正規化を発見し、WAFを回避するペイロードを生成します。

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

人気

すべて見る →

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

すべてのツールを探索

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

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

REcollapse

REcollapseは、Webアプリケーションのバリデーションをバイパスし、正規化を発見するためのブラックボックス正規表現ファジングのヘルパーツールです。

また、WAFや脆弱な脆弱性緩和策をバイパスするのにも役立ちます。詳細については、REcollapseブログ記事をご覧ください。

このツールの目的は、テスト用のペイロードを生成することです。実際のファジングは、Burp (intruder)、Caido (automate)、ffuf などの他のツールを使用して行う必要があります。


インストール

必要条件: Python 3

pip3 install recollapse または python3 setup.py install または pip3 install .

Docker

docker build -t recollapse . または docker pull 0xacb/recollapse


使用方法

root@kitploit:~
$ recollapse -h
usage: recollapse [-h] [-m MODES] [-e {1,2,3,4}] [-r RANGE] [-s SIZE] [-f FILE] [-an] [-mn MAXNORM] [-mt MAXTRUNC] [-nt] [-tt] [-ct]
                  [--html] [--version]
                  [input]

REcollapse is a helper tool for black-box regex fuzzing to bypass validations and discover normalizations in web applications

positional arguments:
  input                 original input

options:
  -h, --help            show this help message and exit
  -m, --modes, -p, --positions MODES
                        variation modes. Example: 1,2,3,4,5,6,7 (default). 1: starting, 2: separator, 3: normalization, 4:
                        termination, 5: regex metacharacters, 6: case folding/upper/lower, 7: byte truncation
  -e, --encoding {1,2,3,4}
                        1: URL-encoded format (default), 2: Unicode format, 3: Raw format, 4: Double URL-encoded format
  -r, --range RANGE     range of bytes for fuzzing. Example: 0,0xff (default)
  -s, --size SIZE       number of fuzzing bytes (default: 1)
  -f, --file FILE       read input from file
  -an, --alphanum       include alphanumeric bytes in fuzzing range
  -mn, --maxnorm MAXNORM
                        maximum number of normalizations (default: 3)
  -mt, --maxtrunc MAXTRUNC
                        maximum number of truncations (default: 3)
  -nt, --normtable      print normalization table
  -tt, --trunctable     print truncation table
  -ct, --casetable      print case table
  --html                output tables in HTML format
  --version             show recollapse version

詳細なオプションの説明

入力として this_is.an_example を考えます。

モード

  1. 入力の先頭をファジング: $this_is.an_example
  2. 特殊文字の前後をファジング: this$_$is$.$an$_$example
  3. 正規化位置をファジング: 正規化テーブルに従ってすべての可能なバイトを置換
  4. 入力の末尾をファジング: this_is.an_example$
  5. 正規表現メタ文字をファジング: すべての可能な正規表現メタ文字を置換: .^$*+-?()[]{}\|
  6. 大文字小文字の折りたたみ/大文字/小文字をファジング: 大文字小文字テーブルに従ってすべての可能なバイトを置換
  7. バイト切り詰めをファジング: 切り詰めテーブルに従ってすべての可能なバイトを置換

エンコーディング

  1. application/x-www-form-urlencoded またはクエリ/ボディパラメータで使用するURLエンコード形式: %22this_is.an_example
  2. application/json で使用するUnicode形式: \u0022this_is.an_example
  3. multipart/form-data で使用するRaw形式: "this_is.an_example
  4. 二重URLエンコード形式

範囲

ファジングのバイト範囲を指定: -r 1-127。-anオプションが指定されていない限り、英数字は除外されます。

サイズ

モード1、2、4のファジングサイズを指定します。デフォルトでは、1バイトのすべての可能な値をファジングします。サイズを増やすと、より多くのリソースを消費し、より多くの入力を生成しますが、新しいバイパスを見つける可能性があります。

ファイル

入力は位置引数、stdin、または-fオプションを介したファイルとして提供できます。

英数字

デフォルトでは、英数字は出力生成から除外されます。これは通常、レスポンスの観点からは興味深くありません。-anオプションで許可できます。

正規化の最大数

すべての正規化ライブラリが同じ動作をするわけではありません。デフォルトでは、各入力インデックスに対して3つの正規化の可能性が生成されますが、通常はこれで十分です。さらに進めるには-mnオプションを使用します。

テーブル

-ntオプションで正規化テーブルを表示し、-ctオプションで大文字小文字テーブルを表示し、-ttオプションで切り詰めテーブルを表示します。また、--htmlオプションを使用してテーブルをHTML形式で出力することもできます。

root@kitploit:~
$ recollapse -nt --html > normalization_table.html
$ recollapse -tt --html > truncation_table.html
$ recollapse -ct --html > case_table.html

例

Recollapseをコマンドラインツールとして使用:

root@kitploit:~
$ recollapse -e 1 -m 1,2,4 -r 10-11 https://legit.example.com
%0ahttps://legit.example.com
%0bhttps://legit.example.com
https%0a://legit.example.com
https%0b://legit.example.com
...

$ echo "[email protected]" | recollapse 
%[email protected]
%[email protected]
...

$ echo "<svg/onload=alert(1)>" | recollapse | ffuf -w - -u "https://example.com/?param=FUZZ" -mc 200,403,500

Recollapseをライブラリとして使用:

root@kitploit:~
from recollapse import Recollapse

recollapse = Recollapse(modes=Recollapse.DEFAULT_MODES,
                        encoding=Recollapse.ENCODING_RAW)
variants = recollapse.generate("<script")
for variant in variants:
    print(variant)

リソース

この手法は元々BSidesLisbon 2022で発表されました。

ブログ記事: https://0xacb.com/2022/11/21/recollapse/

スライド:

  • nahamcon_2022_eu_till_recollapse.pdf
  • bsideslisbon_2022_till_recollapse.pdf

動画:

  • NahamCon 2022 EU
  • BSidesLisbon 2022

テーブル:

  • 正規化テーブル: https://0xacb.com/normalization_table
  • 大文字小文字テーブル: https://0xacb.com/case_table
  • 切り詰めテーブル: https://0xacb.com/truncation_table

謝辞

  • @regala_
  • @0xz3z4d45
  • @jllis
  • @samwcyo
  • @yassineaboukir
  • @0xteknogeek
  • @vgpinho
  • @ryancbarnett
  • BBAC

そして

  • @ethiack チーム
  • @0xdisturbance チーム
  • @hacker0x01 チーム

⚠ 法的免責事項 ⚠

このプロジェクトは教育および倫理的なテスト目的のみで作成されています。事前の相互同意なしにこのツールを使用してターゲットを攻撃することは違法です。開発者は一切の責任を負わず、このツールによって引き起こされた誤用や損害について責任を負いません。

ツールをダウンロード