EN
ENNA

Smuggler

MIT

๐Ÿ•ธ Web Scanning ยท Python

Smuggler is an HTTP request smuggling / desync testing tool written in Python. It tests for vulnerabilities where a front-end server and back-end server disagree on how to parse HTTP requests, specifically around Content-Length and Transfer-Encoding header handling. This disagreement can allow an attacker to 'smuggle' a second request inside the first, potentially bypassing security controls, poisoning web caches, hijacking other users' requests, or accessing internal endpoints. Smuggler tests for CL.TE (Content-Length / Transfer-Encoding), TE.CL (Transfer-Encoding / Content-Length), and TE.TE (Transfer-Encoding / Transfer-Encoding with obfuscation) variants. It sends carefully crafted requests and analyzes timing differences and response behavior to detect desync conditions. The tool is essential for testing modern web architectures that use reverse proxies, CDNs, and load balancers.

2.1kstars
329forks
18issues
Updated 2y ago

Installation

from source

$ git clone https://github.com/defparam/smuggler.git && cd smuggler && pip install -r requirements.txt

Use Cases

  • Testing reverse proxy and CDN configurations for HTTP request smuggling
  • Detecting CL.TE and TE.CL desync vulnerabilities in web infrastructure
  • Identifying cache poisoning vectors through request smuggling techniques
  • Assessing web application firewall bypass via HTTP desynchronization
  • Validating load balancer and proxy header parsing consistency

Tags

request-smugglingdesynchttpproxycache-poisoning

More in Web Scanning