Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
recollapse — Outil de fuzzing d'expressions régulières en boîte noire qui génère des charges utiles pour contourner les validations d'entrée, découvrir les normalisations et échapper aux WAF dans les applications web. | Kitploit
Outils/GitHubGitHub/0xacb/recollapse
Génération de PayloadsContournement de WAFSécurité WebFuzzing
GitHub0xacb/recollapse

recollapse

Outil de fuzzing d'expressions régulières en boîte noire qui génère des charges utiles pour contourner les validations d'entrée, découvrir les normalisations et échapper aux WAF dans les applications web.

Voir le dépôt
1.4k15049il y a 1 anVérifié par Kitploit

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

REcollapse

REcollapse est un outil auxiliaire pour le fuzzing de regex en boîte noire afin de contourner les validations et découvrir les normalisations dans les applications web.

Il peut également être utile pour contourner les WAF et les atténuations de vulnérabilités faibles. Pour plus d'informations, consultez le billet de blog REcollapse.

Le but de cet outil est de générer des payloads pour les tests. Le fuzzing proprement dit doit être effectué avec d'autres outils comme Burp (intruder), Caido (automate), ffuf, ou similaires.


Installation

Prérequis: Python 3

pip3 install recollapse ou python3 setup.py install ou pip3 install .

Docker

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


Utilisation

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

Explication détaillée des options

Prenons this_is.an_example comme entrée.

Modes

  1. Fuzzer le début de l'entrée : $this_is.an_example
  2. Fuzzer avant et après les caractères spéciaux : this$_$is$.$an$_$example
  3. Fuzzer les positions de normalisation : remplacer tous les octets possibles selon la table de normalisation
  4. Fuzzer la fin de l'entrée : this_is.an_example$
  5. Fuzzer les métacaractères regex : remplacer tous les métacaractères regex possibles : .^$*+-?()[]{}\|
  6. Fuzzer la casse (majuscule/minuscule) : remplacer tous les octets possibles selon la table de casse
  7. Fuzzer la troncature d'octets : remplacer tous les octets possibles selon la table de troncature

Encodage

  1. Format encodé URL à utiliser avec application/x-www-form-urlencoded ou les paramètres de requête/corps : %22this_is.an_example
  2. Format Unicode à utiliser avec application/json : \u0022this_is.an_example
  3. Format brut à utiliser avec multipart/form-data : "this_is.an_example
  4. Format doublement encodé URL

Plage

Spécifiez une plage d'octets pour le fuzzing : -r 1-127. Cela exclura les caractères alphanumériques sauf si l'option -an est fournie.

Taille

Spécifiez la taille du fuzzing pour les modes 1, 2 et 4. L'approche par défaut est de fuzzer toutes les valeurs possibles pour un octet. Augmenter la taille consommera plus de ressources et générera beaucoup plus d'entrées, mais cela peut permettre de trouver de nouveaux contournements.

Fichier

L'entrée peut être fournie comme argument positionnel, stdin, ou un fichier via l'option -f.

Alphanumérique

Par défaut, les caractères alphanumériques seront exclus de la génération de sortie, ce qui n'est généralement pas intéressant en termes de réponses. Vous pouvez les autoriser avec l'option -an.

Nombre maximum de normalisations

Toutes les bibliothèques de normalisation n'ont pas le même comportement. Par défaut, trois possibilités de normalisation sont générées pour chaque index d'entrée, ce qui est généralement suffisant. Utilisez l'option -mn pour aller plus loin.

Tables

Utilisez l'option -nt pour afficher la table de normalisation, l'option -ct pour afficher la table de casse, et l'option -tt pour afficher la table de troncature. Vous pouvez également utiliser l'option --html pour produire les tables au format HTML.

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

Exemples

Utilisation de Recollapse en ligne de commande :

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

Utilisation de Recollapse comme bibliothèque :

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)

Ressources

Cette technique a été présentée à l'origine au BSidesLisbon 2022

Article de blog: https://0xacb.com/2022/11/21/recollapse/

Diapositives :

  • nahamcon_2022_eu_till_recollapse.pdf
  • bsideslisbon_2022_till_recollapse.pdf

Vidéos :

  • NahamCon 2022 EU
  • BSidesLisbon 2022

Tables :

  • Table de normalisation : https://0xacb.com/normalization_table
  • Table de casse : https://0xacb.com/case_table
  • Table de troncature : https://0xacb.com/truncation_table

Remerciements

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

et

  • @ethiack équipe
  • @0xdisturbance équipe
  • @hacker0x01 équipe

⚠ Avertissement légal ⚠

Ce projet est réalisé uniquement à des fins de tests éducatifs et éthiques. L'utilisation de cet outil pour attaquer des cibles sans consentement mutuel préalable est illégale. Les développeurs déclinent toute responsabilité et ne sont pas responsables de tout usage abusif ou dommage causé par cet outil.

Télécharger l’outil