Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
recollapse — Strumento di fuzzing regex a scatola nera che genera payload per bypassare le validazioni degli input, scoprire normalizzazioni ed eludere i WAF nelle applicazioni web. | Kitploit
Strumenti/GitHubGitHub/0xacb/recollapse
Generazione di PayloadBypass WAFSicurezza WebFuzzing
GitHub0xacb/recollapse

recollapse

Strumento di fuzzing regex a scatola nera che genera payload per bypassare le validazioni degli input, scoprire normalizzazioni ed eludere i WAF nelle applicazioni web.

Vedi Repository
1.4k1501 anno faRevisionato da Kitploit

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi

REcollapse

REcollapse è uno strumento di supporto per il fuzzing regex black-box per bypassare le validazioni e scoprire normalizzazioni nelle applicazioni web.

Può anche essere utile per bypassare WAF e mitigazioni deboli delle vulnerabilità. Per maggiori informazioni, dai un'occhiata al post sul blog di REcollapse.

L'obiettivo di questo strumento è generare payload per i test. Il vero fuzzing va eseguito con altri strumenti come Burp (intruder), Caido (automate), ffuf o simili.


Installazione

Requisiti: Python 3

pip3 install recollapse oppure python3 setup.py install oppure pip3 install .

Docker

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


Utilizzo

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 è uno strumento di supporto per il fuzzing regex black-box per bypassare validazioni e scoprire normalizzazioni nelle applicazioni web

positional arguments:
  input                 input originale

options:
  -h, --help            mostra questo messaggio di aiuto ed esce
  -m, --modes, -p, --positions MODES
                        modalità di variazione. Esempio: 1,2,3,4,5,6,7 (default). 1: inizio, 2: separatore, 3: normalizzazione, 4:
                        terminazione, 5: metacaratteri regex, 6: case folding/maiuscolo/minuscolo, 7: troncamento byte
  -e, --encoding {1,2,3,4}
                        1: formato URL-encoded (default), 2: formato Unicode, 3: formato Raw, 4: formato Double URL-encoded
  -r, --range RANGE     intervallo di byte per il fuzzing. Esempio: 0,0xff (default)
  -s, --size SIZE       numero di byte per il fuzzing (default: 1)
  -f, --file FILE       legge input da file
  -an, --alphanum       include byte alfanumerici nell'intervallo di fuzzing
  -mn, --maxnorm MAXNORM
                        numero massimo di normalizzazioni (default: 3)
  -mt, --maxtrunc MAXTRUNC
                        numero massimo di troncamenti (default: 3)
  -nt, --normtable      stampa la tabella di normalizzazione
  -tt, --trunctable     stampa la tabella di troncamento
  -ct, --casetable      stampa la tabella dei case
  --html                output delle tabelle in formato HTML
  --version             mostra la versione di recollapse

Spiegazione dettagliata delle opzioni

Consideriamo this_is.an_example come input.

Modalità

  1. Fuzz all'inizio dell'input: $this_is.an_example
  2. Fuzz prima e dopo i caratteri speciali: this$_$is$.$an$_$example
  3. Fuzz delle posizioni di normalizzazione: sostituisce tutti i byte possibili secondo la tabella di normalizzazione
  4. Fuzz alla fine dell'input: this_is.an_example$
  5. Fuzz dei metacaratteri regex: sostituisce tutti i possibili metacaratteri regex: .^$*+-?()[]{}\|
  6. Fuzz del case folding/maiuscolo/minuscolo: sostituisce tutti i byte possibili secondo la tabella dei case
  7. Fuzz del troncamento byte: sostituisce tutti i byte possibili secondo la tabella di troncamento

Codifica

  1. Formato URL-encoded da utilizzare con application/x-www-form-urlencoded o parametri query/body: %22this_is.an_example
  2. Formato Unicode da utilizzare con application/json: \u0022this_is.an_example
  3. Formato Raw da utilizzare con multipart/form-data: "this_is.an_example
  4. Formato Double URL-encoded

Intervallo

Specifica un intervallo di byte per il fuzzing: -r 1-127. Questo escluderà i caratteri alfanumerici a meno che non venga fornita l'opzione -an.

Dimensione

Specifica la dimensione del fuzzing per le modalità 1, 2 e 4. L'approccio predefinito è fuzzare tutti i possibili valori per un byte. Aumentare la dimensione consumerà più risorse e genererà molti più input, ma può portare alla scoperta di nuovi bypass.

File

L'input può essere fornito come argomento posizionale, stdin o un file tramite l'opzione -f.

Alfanumerico

Per impostazione predefinita, i caratteri alfanumerici saranno esclusi dalla generazione dell'output, il che di solito non è interessante in termini di risposte. Puoi permetterli con l'opzione -an.

Numero massimo di normalizzazioni

Non tutte le librerie di normalizzazione hanno lo stesso comportamento. Per impostazione predefinita, vengono generate tre possibilità di normalizzazione per ogni indice di input, il che di solito è sufficiente. Usa l'opzione -mn per andare oltre.

Tabelle

Usa l'opzione -nt per mostrare la tabella di normalizzazione, l'opzione -ct per mostrare la tabella dei case e l'opzione -tt per mostrare la tabella di troncamento. Puoi anche usare l'opzione --html per produrre le tabelle in formato HTML.

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

Esempi

Utilizzo di Recollapse come strumento da riga di comando:

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

Utilizzo di Recollapse come libreria:

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)

Risorse

Questa tecnica è stata originariamente presentata a BSidesLisbon 2022

Post sul blog: https://0xacb.com/2022/11/21/recollapse/

Slide:

  • nahamcon_2022_eu_till_recollapse.pdf
  • bsideslisbon_2022_till_recollapse.pdf

Video:

  • NahamCon 2022 EU
  • BSidesLisbon 2022

Tabelle:

  • Tabella di normalizzazione: https://0xacb.com/normalization_table
  • Tabella dei case: https://0xacb.com/case_table
  • Tabella di troncamento: https://0xacb.com/truncation_table

Ringraziamenti

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

e

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

⚠ Disclaimer legale ⚠

Questo progetto è realizzato solo per scopi educativi e di test etici. L'utilizzo di questo strumento per attaccare target senza previo consenso reciproco è illegale. Gli sviluppatori non si assumono alcuna responsabilità e non sono responsabili per qualsiasi uso improprio o danno causato da questo strumento.

Scarica lo strumento