← retour aux outils back to tools

# Smuggler

Outil de détection et d'exploitation du HTTP request smuggling. Sonde les vulnérabilités de désynchronisation CL.TE, TE.CL et TE.TE. HTTP request smuggling detection and exploitation tool. Probes for CL.TE, TE.CL, and TE.TE desync vulnerabilities.

↗ https://github.com/defparam/smuggler

## Overview

Smuggler automates the detection of HTTP request smuggling vulnerabilities by probing front-end/back-end server pairs for desync issues across multiple techniques.

## Common Usage

Basic scan

    python3 smuggler.py -u https://target.com

    # Scan with a specific technique
    python3 smuggler.py -u https://target.com -t CL.TE
    python3 smuggler.py -u https://target.com -t TE.CL
    python3 smuggler.py -u https://target.com -t TE.TE

Scan from a list of URLs

    cat urls.txt | python3 smuggler.py

Verbose output

    python3 smuggler.py -u https://target.com -v

Custom timeout

    python3 smuggler.py -u https://target.com --timeout 15

## Smuggling Techniques

Technique | Description
--- | ---
CL.TE | Front-end uses `Content-Length`, back-end uses `Transfer-Encoding`
TE.CL | Front-end uses `Transfer-Encoding`, back-end uses `Content-Length`
TE.TE | Both use `Transfer-Encoding` but one can be obfuscated

## Manual Testing in Burp

1. Send request to Repeater
2. Disable “Update Content-Length” in Repeater options
3. Craft a request with both `Content-Length` and `Transfer-Encoding` headers
4. Observe timing differences and unexpected responses

See PortSwigger Web Academy for detailed smuggling labs.

Help / Man page

    smuggler.py [options]

    OPTIONS:
      -u URL          Target URL
      -t TECHNIQUE    Specific technique: CL.TE, TE.CL, TE.TE
                      (default: all techniques)
      -v              Verbose output
      --timeout N     Socket timeout in seconds (default: 5)
      --exit-early    Stop after first finding

    STDIN:
      cat urls.txt | python3 smuggler.py   Scan multiple URLs

    TECHNIQUES:
      CL.TE    Content-Length / Transfer-Encoding desync
      TE.CL    Transfer-Encoding / Content-Length desync
      TE.TE    Transfer-Encoding obfuscation bypass

    OUTPUT:
      [+] Possible vuln   Potential desync detected
      [!] Confirmed       Confirmed vulnerable endpoint

## Vue d’ensemble

Smuggler automatise la détection des vulnérabilités de HTTP request smuggling en sondant les paires de serveurs front-end/back-end pour des problèmes de désynchronisation avec plusieurs techniques.

## Utilisation courante

    # Scan de base
    python3 smuggler.py -u https://target.com

    # Scanner avec une technique spécifique
    python3 smuggler.py -u https://target.com -t CL.TE
    python3 smuggler.py -u https://target.com -t TE.CL
    python3 smuggler.py -u https://target.com -t TE.TE

    # Scanner depuis une liste d'URLs
    cat urls.txt | python3 smuggler.py

    # Sortie verbeuse
    python3 smuggler.py -u https://target.com -v

    # Timeout personnalisé
    python3 smuggler.py -u https://target.com --timeout 15

## Techniques de smuggling

Technique | Description
--- | ---
CL.TE | Le front-end utilise `Content-Length`, le back-end utilise `Transfer-Encoding`
TE.CL | Le front-end utilise `Transfer-Encoding`, le back-end utilise `Content-Length`
TE.TE | Les deux utilisent `Transfer-Encoding` mais l’un peut être obfusqué

## Test manuel dans Burp

1. Envoyer la requête au Repeater
2. Désactiver “Update Content-Length” dans les options du Repeater
3. Créer une requête avec les en-têtes `Content-Length` et `Transfer-Encoding`
4. Observer les différences de timing et les réponses inattendues

Voir PortSwigger Web Academy pour les labs détaillés sur le smuggling.

Aide / Page de manuel

    smuggler.py [options]

    OPTIONS:
      -u URL          Target URL
      -t TECHNIQUE    Specific technique: CL.TE, TE.CL, TE.TE
                      (default: all techniques)
      -v              Verbose output
      --timeout N     Socket timeout in seconds (default: 5)
      --exit-early    Stop after first finding

    STDIN:
      cat urls.txt | python3 smuggler.py   Scan multiple URLs

    TECHNIQUES:
      CL.TE    Content-Length / Transfer-Encoding desync
      TE.CL    Transfer-Encoding / Content-Length desync
      TE.TE    Transfer-Encoding obfuscation bypass

    OUTPUT:
      [+] Possible vuln   Potential desync detected
      [!] Confirmed       Confirmed vulnerable endpoint