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
smugglefuzz — Um scanner rápido de contrabando de downgrade HTTP escrito em Go. | Kitploit
Ferramentas/GitHubGitHub/moopinger/smugglefuzz
Scanners de VulnerabilidadesExploração de Aplicações WebTestes de Segurança de APIsSegurança WebFuzzingTestes de Penetração
GitHubmoopinger/smugglefuzz

smugglefuzz

Um scanner rápido de contrabando de downgrade HTTP escrito em Go.

Ver Repositório
31328há 2 anosRevisado 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

made-with-Go go-report license

SmuggleFuzz

SmuggleFuzz, um scanner de contrabando de downgrade HTTP configurável e rápido. Capacita os utilizadores com listas de gadgets personalizáveis, oferecendo perceções mais profundas sobre as razões das falhas em ataques de contrabando. Estou confiante de que inúmeras vulnerabilidades de contrabando baseadas em downgrade HTTP permanecem por descobrir. Infelizmente, muitos indivíduos cessam a sua exploração após uma varredura superficial. Ao usar o SmuggleFuzz, pode descobrir vulnerabilidades de contrabando que outros podem ignorar.

Para mais informações, consulte https://moopinger.github.io/blog/smugglefuzz/fuzzing/smuggling/2024/01/31/SmuggleFuzz.html

Instalação

Descarregue uma cópia a partir da página de versões: https://github.com/Moopinger/smugglefuzz/releases

Ou, compile você mesmo:

root@kitploit:~
go install github.com/moopinger/smugglefuzz@latest

Outra forma:

root@kitploit:~
git clone https://github.com/moopinger/smugglefuzz.git
cd smugglefuzz
go build .
./smugglefuzz

Utilização

Existem três comandos para o SmuggleFuzz:

  • scan
root@kitploit:~

Usage:
  smugglefuzz scan [flags]

Examples:
	smugglefuzz scan -u https://example.com/ --confirm
	smugglefuzz scan -u https://example.com/ --filter TIMEOUT --confirm
	smugglefuzz scan -u https://example.com/ -w wordlist.txt -t 10 --confirm --filter TIMEOUT
	smugglefuzz scan --dc -u https://example.com/ -w wordlist.txt -x PUT --confirm

	//Múltiplos alvos? Basta usar -f em vez de -u e fornecer um ficheiro com os alvos:

	smugglefuzz scan -f multiple_targets.txt --confirm -t 10 
	smugglefuzz scan -f multiple_targets.txt -w wordlist.txt --confirm -s ./save-success.txt --filter TIMEOUT
	smugglefuzz scan -f multiple_targets.txt -w wordlist.txt -H "Cookie: date=...; session=...;" -s ./save-success.txt -x PUT --filter TIMEOUT

Flags:
  -c, --confirm               Ative esta flag para enviar uma confirmação ao alvo quando ocorrer um timeout. Ajuda a confirmar se o alvo é vulnerável.
  -d, --data string           Quadro de dados HTTP/2 a enviar. Ex: 99\r\n (padrão "99\r\n")
      --dc                    Desative a cor na saída. Útil quando pretende guardar a saída num ficheiro.
  -f, --file string           Um ficheiro contendo múltiplos alvos em formato de URL. Um alvo por linha.
      --filter string         Filtrar respostas por string ou tipo de quadro, etc. Por exemplo: 405, 200, 502, TIMEOUT, RST, GOAWAY, etc.
  -H, --header string         Inserir um cabeçalho personalizado. Deve ser fornecido no formato de cabeçalho normal: "Cookie: date=...; session=...;"
  -h, --help                  help for scan
  -i, --interval int          O intervalo de timeout em segundos. (padrão 5)
  -x, --method string         O método de pedido HTTP a ser usado. (padrão "POST")
  -s, --save-success string   Se um pedido for confirmado como bem-sucedido (através da flag --confirm), será guardado num ficheiro. Útil quando se lida com muitos alvos.
  -t, --threads int           O número de threads a executar. Smugglefuzz pode ser rápido, por isso defina o número desejado. No entanto, muitas threads podem incomodar algum WAF. (padrão 4)
  -u, --url string            O URL alvo a ser escaneado.
  -w, --wordlist string       Fornecer uma lista personalizada de gadgets a usar. Se não for fornecida, será usada a lista predefinida.

  • request
root@kitploit:~

Usage:
  smugglefuzz request [flags]

Examples:
	smugglefuzz request -u https://www.example.com/ -a "content-length\t; 13"
	smugglefuzz request -u https://www.example.com/ -a "content-length\t; 13" -x PUT
	smugglefuzz request -u https://www.example.com/ -a "content-length\t; 13" -H "Cookie: date=...; session=...;" --data "223\r\n"

Flags:
  -a, --attack string   Cabeçalho de ataque, separado por (; ) como a wordlist no modo 'scan'.
  -d, --data string     Conteúdo do quadro de dados HTTP/2 a enviar. (padrão "99\r\n")
      --dc              Desative a cor na saída.
  -H, --header string   Inserir cabeçalho personalizado. Ex: "Cookie: values"
  -h, --help            help for request
  -i, --interval int    Intervalo de timeout de deteção em segundos. (padrão 5)
  -x, --method string   O método a usar. (padrão "POST")
  -u, --url string      O URL alvo para submeter o pedido.

  • output

Isto irá apenas exibir os gadgets de contrabando predefinidos. Atualmente, a confirmação incorporada funciona apenas para H2.CL e H2.TE. Mas ainda é possível detetar ataques H2.0 através de timeouts (--filter TIMEOUT) ou OAST num domínio seu. (Consulte a secção sobre pseudo cabeçalhos abaixo)

Wordlist

O SmuggleFuzz permite aos utilizadores controlo total sobre os pedidos através de wordlists personalizadas. Estas listas têm uma estrutura básica, que deve ser seguida para um tratamento ideal dos pedidos. Por exemplo, os cabeçalhos e os seus valores são divididos usando um ponto e vírgula e um espaço (; ) em vez do usual dois pontos, facilitando a inclusão de valores com dois pontos em pedidos de contrabando. Isto também abre possibilidades para várias mutações e abordagens criativas. Para orientação detalhada sobre como criar os seus próprios payloads, consulte: Pesquisa HTTP/2 de James Kettle.

A ferramenta inclui uma lista pronta a usar de 125 gadgets de contrabando, embora haja sempre espaço para expansão. Estes gadgets podem ser exibidos usando o comando 'output', fornecendo insights sobre como estruturar consultas. Os utilizadores podem executar varreduras com wordlists personalizadas usando a flag 'w'. A lista suporta codificação URL (%00) para valores de byte não imprimíveis, como retorno de carro e nova linha representados como '%0d%0a' ou '\r\n'. Embora a lista fornecida seja abrangente, criar os seus próprios gadgets pode aumentar significativamente as taxas de sucesso.

H2C

Precisa de suporte h2c? Consulte o branch "experimental-h2c" do SmuggleFuzz.

Pseudo cabeçalhos

Os pseudo cabeçalhos são totalmente suportados e podem ser personalizados usando a sintaxe ":name":

  • :authority
  • :scheme
  • :method

Estes cabeçalhos são particularmente úteis quando se testam vetores de ataque H2.0. Por exemplo, ao testar contrabando H2.0 usando métodos baseados em OAST, entradas de wordlist como as seguintes podem ser eficazes:

A partir da v0.1.8, [HOSTNAME] pode ser usado como espaço reservado. O SmuggleFuzz substituirá isto pelo hostname em tempo de execução.

  • :authority; [HOSTNAME]\r\n\r\nGET / HTTP/1.1\r\nHost: uniqid.oastify.com\r\nX-HEADER:%20

ou

  • :authority; [HOSTNAME]\r\n\r\nGET https://uniqid.oastify.com/ HTTP/1.1\r\nHost: [HOSTNAME]\r\nX-HEADER:%20

Deteção

O método de deteção empregue no SmuggleFuzz é semelhante aos usados por Albinowax na sua pesquisa de contrabando HTTP/1 e defparam's Smuggler, embora com adaptações para HTTP/2. Felizmente, como estes ataques envolvem downgrades, o mesmo corpo de pedido/payload DATA pode ser utilizado para a deteção de H2.CL e H2.TE.

Uma diretriz crucial para wordlists é que os cabeçalhos contrabandeados com sucesso devem incluir os seguintes valores para um ataque confirmatório:

root@kitploit:~
CL: 13
TE: chunked

Cada pedido incorpora um "Body"/DATA-Frame com o valor "99\r\n". Se um cabeçalho TE for contrabandeado, é interpretado como um comprimento de conteúdo chunked de 153 (0x99) pelo servidor se for contrabandeado com sucesso, levando a um timeout. Da mesma forma, contrabandear um cabeçalho CL com um comprimento de conteúdo de 13 também resulta num timeout devido ao comprimento não cumprido.

O pedido confirmatório re-submete a mesma consulta que levou ao timeout, mas com Data: "3\r\nABC\r\n0\r\n\r\n". Isto satisfaz tanto um TE chunked como um CL de 13, obtendo uma resposta bem-sucedida e potencialmente indicando uma vulnerabilidade de contrabando.

Agradecimentos (Sem estas pessoas e projetos isto não existiria)

  • James Kettle
  • Emile Lerner
  • golang.org/x/net/http2
  • golang.org/x/net/http2/hpack
  • github.com/spf13/cobra
  • GoReleaser
Baixar ferramenta