Skip to content
KitploitKITPLOIT
FerramentasBlog
Enviar
FerramentasBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
recollapse — Ferramenta de fuzzing de regex de caixa-preta que gera payloads para contornar validações de entrada, descobrir normalizações e evadir WAFs em aplicações web. | Kitploit
Ferramentas/GitHubGitHub/0xacb/recollapse
Geração de PayloadsBypass de WAFSegurança WebFuzzing
GitHub0xacb/recollapse

recollapse

Ferramenta de fuzzing de regex de caixa-preta que gera payloads para contornar validações de entrada, descobrir normalizações e evadir WAFs em aplicações web.

Ver Repositório
1.4k150há 1 anoRevisado pelo Kitploit

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar

REcollapse

REcollapse é uma ferramenta auxiliar para fuzzing de regex em caixa-preta, usada para contornar validações e descobrir normalizações em aplicações web.

Também pode ser útil para contornar WAFs e mitigações fracas de vulnerabilidades. Para mais informações, consulte o artigo do blog sobre REcollapse.

O objetivo desta ferramenta é gerar payloads para testes. O fuzzing propriamente dito deve ser feito com outras ferramentas como Burp (intruder), Caido (automate), ffuf ou similares.


Instalação

Requisitos: Python 3

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

Docker

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


Uso

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

Explicação detalhada das opções

Considere this_is.an_example como entrada.

Modos

  1. Fuzz no início da entrada: $this_is.an_example
  2. Fuzz antes e depois de caracteres especiais: this$_$is$.$an$_$example
  3. Fuzz em posições de normalização: substitui todos os bytes possíveis de acordo com a tabela de normalização
  4. Fuzz no final da entrada: this_is.an_example$
  5. Fuzz em metacaracteres de regex: substitui todos os metacaracteres de regex possíveis: .^$*+-?()[]{}\|
  6. Fuzz em case folding/upper/lower: substitui todos os bytes possíveis de acordo com a tabela de case
  7. Fuzz em truncamento de bytes: substitui todos os bytes possíveis de acordo com a tabela de truncamento

Codificação

  1. Formato codificado em URL para uso com application/x-www-form-urlencoded ou parâmetros de query/body: %22this_is.an_example
  2. Formato Unicode para uso com application/json: \u0022this_is.an_example
  3. Formato bruto para uso com multipart/form-data: "this_is.an_example
  4. Formato duplamente codificado em URL

Intervalo

Especifica um intervalo de bytes para fuzzing: -r 1-127. Isso excluirá caracteres alfanuméricos, a menos que a opção -an seja fornecida.

Tamanho

Especifica o tamanho do fuzzing para os modos 1, 2 e 4. A abordagem padrão é fuzzar todos os valores possíveis para um byte. Aumentar o tamanho consumirá mais recursos e gerará muito mais entradas, mas pode levar à descoberta de novos bypasses.

Arquivo

A entrada pode ser fornecida como argumento posicional, stdin ou um arquivo através da opção -f.

Alfanumérico

Por padrão, caracteres alfanuméricos serão excluídos da geração de saída, o que geralmente não é interessante em termos de respostas. Você pode permitir isso com a opção -an.

Número máximo de normalizações

Nem todas as bibliotecas de normalização têm o mesmo comportamento. Por padrão, três possibilidades de normalização são geradas para cada índice de entrada, o que geralmente é suficiente. Use a opção -mn para ir além.

Tabelas

Use a opção -nt para mostrar a tabela de normalização, a opção -ct para mostrar a tabela de case e a opção -tt para mostrar a tabela de truncamento. Você também pode usar a opção --html para gerar tabelas em formato HTML.

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

Exemplos

Usando REcollapse como ferramenta de linha de 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

Usando REcollapse como biblioteca:

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)

Recursos

Esta técnica foi originalmente apresentada no BSidesLisbon 2022

Artigo no blog: https://0xacb.com/2022/11/21/recollapse/

Slides:

  • nahamcon_2022_eu_till_recollapse.pdf
  • bsideslisbon_2022_till_recollapse.pdf

Vídeos:

  • NahamCon 2022 EU
  • BSidesLisbon 2022

Tabelas:

  • Tabela de normalização: https://0xacb.com/normalization_table
  • Tabela de case: https://0xacb.com/case_table
  • Tabela de truncamento: https://0xacb.com/truncation_table

Agradecimentos

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

e

  • equipa @ethiack
  • equipa @0xdisturbance
  • equipa @hacker0x01

⚠ Aviso Legal ⚠

Este projeto é destinado apenas a fins educacionais e de testes éticos. O uso desta ferramenta para atacar alvos sem consentimento mútuo prévio é ilegal. Os desenvolvedores não assumem qualquer responsabilidade e não se responsabilizam por qualquer uso indevido ou danos causados por esta ferramenta.

Baixar ferramenta