Skip to content
KitploitKITPLOIT
ToolsBlog
Einreichen
ToolsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
Tools/GitHubGitHub/0xacb/recollapse
Payload-GenerierungWAF-UmgehungWebsicherheitFuzzing
GitHub0xacb/recollapse

recollapse

Black-Box-Regex-Fuzzing-Tool, das Payloads generiert, um Eingabevalidierungen zu umgehen, Normalisierungen zu entdecken und WAFs in Webanwendungen zu umgehen.

Repository anzeigen
1.4k150vor 1 JahrVon Kitploit geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

REcollapse

REcollapse ist ein Hilfstool für Black-Box-Regex-Fuzzing, um Validierungen zu umgehen und Normalisierungen in Webanwendungen zu entdecken.

Es kann auch hilfreich sein, um WAFs und schwache Schwachstellenminderungen zu umgehen. Weitere Informationen findest du im REcollapse-Blogbeitrag.

Das Ziel dieses Tools ist es, Payloads für Tests zu generieren. Das eigentliche Fuzzing sollte mit anderen Tools wie Burp (Intruder), Caido (Automate), ffuf oder ähnlichen durchgeführt werden.


Installation

Voraussetzungen: Python 3

pip3 install recollapse oder python3 setup.py install oder pip3 install .

Docker

docker build -t recollapse . oder docker pull 0xacb/recollapse


Verwendung

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

Detaillierte Erklärung der Optionen

Betrachten wir this_is.an_example als Eingabe.

Modi

  1. Fuzze den Anfang der Eingabe: $this_is.an_example
  2. Fuzze vor und nach Sonderzeichen: this$_$is$.$an$_$example
  3. Fuzze Normalisierungspositionen: Ersetze alle möglichen Bytes gemäß der Normalisierungstabelle
  4. Fuzze das Ende der Eingabe: this_is.an_example$
  5. Fuzze Regex-Metazeichen: Ersetze alle möglichen Regex-Metazeichen: .^$*+-?()[]{}\|
  6. Fuzze Groß-/Kleinschreibung: Ersetze alle möglichen Bytes gemäß der Groß-/Kleinschreibungstabelle
  7. Fuzze Byte-Trunkierung: Ersetze alle möglichen Bytes gemäß der Trunkierungstabelle

Kodierung

  1. URL-kodiertes Format zur Verwendung mit application/x-www-form-urlencoded oder Query/Body-Parametern: %22this_is.an_example
  2. Unicode-Format zur Verwendung mit application/json: \u0022this_is.an_example
  3. Rohes Format zur Verwendung mit multipart/form-data: "this_is.an_example
  4. Doppelt URL-kodiertes Format

Bereich

Gib einen Bereich von Bytes zum Fuzzen an: -r 1-127. Dadurch werden alphanumerische Zeichen ausgeschlossen, sofern nicht die Option -an angegeben wird.

Größe

Gib die Größe des Fuzzings für die Modi 1, 2 und 4 an. Der Standardansatz besteht darin, alle möglichen Werte für ein Byte zu fuzzen. Eine Erhöhung der Größe verbraucht mehr Ressourcen und generiert viele weitere Eingaben, kann aber zur Entdeckung neuer Umgehungen führen.

Datei

Die Eingabe kann als positionsbezogenes Argument, über stdin oder eine Datei mittels der Option -f bereitgestellt werden.

Alphanumerisch

Standardmäßig werden alphanumerische Zeichen von der Ausgabegenerierung ausgeschlossen, was hinsichtlich der Antworten normalerweise nicht interessant ist. Du kannst dies mit der Option -an erlauben.

Maximale Anzahl von Normalisierungen

Nicht alle Normalisierungsbibliotheken verhalten sich gleich. Standardmäßig werden drei Möglichkeiten für Normalisierungen pro Eingabeindex generiert, was normalerweise ausreicht. Verwende die Option -mn, um weiter zu gehen.

Tabellen

Verwende die Option -nt, um die Normalisierungstabelle anzuzeigen, die Option -ct für die Groß-/Kleinschreibungstabelle und die Option -tt für die Trunkierungstabelle. Du kannst auch die Option --html verwenden, um Tabellen im HTML-Format auszugeben.

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

Beispiele

Verwendung von Recollapse als Kommandozeilenwerkzeug:

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

Verwendung von Recollapse als Bibliothek:

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)

Ressourcen

Diese Technik wurde ursprünglich auf der BSidesLisbon 2022 vorgestellt.

Blogbeitrag: https://0xacb.com/2022/11/21/recollapse/

Folien:

  • nahamcon_2022_eu_till_recollapse.pdf
  • bsideslisbon_2022_till_recollapse.pdf

Videos:

  • NahamCon 2022 EU
  • BSidesLisbon 2022

Tabellen:

  • Normalisierungstabelle: https://0xacb.com/normalization_table
  • Groß-/Kleinschreibungstabelle: https://0xacb.com/case_table
  • Trunkierungstabelle: https://0xacb.com/truncation_table

Danksagungen

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

und

  • @ethiack Team
  • @0xdisturbance Team
  • @hacker0x01 Team

⚠ Rechtlicher Hinweis ⚠

Dieses Projekt dient ausschließlich zu Bildungs- und ethischen Testzwecken. Die Verwendung dieses Werkzeugs zum Angriff auf Ziele ohne vorherige gegenseitige Zustimmung ist illegal. Die Entwickler übernehmen keine Haftung und sind nicht verantwortlich für Missbrauch oder Schäden, die durch dieses Werkzeug verursacht werden.

Tool herunterladen