HTTP request smuggling

What's this ?

https://portswigger.net/web-security/request-smuggling

HTTP Desync or Request Smuggling:

  • Basics: "HTTP request smuggling is a technique for interfering with the way a web site processes sequences of HTTP requests that are received from one or more users. Request smuggling vulnerabilities are often critical in nature, allowing an attacker to bypass security controls, gain unauthorized access to sensitive data, and directly compromise other application users. " -Portswigger

Where ?:

  • Any Endpoint might be Vulnerable to HTTP Desync attack.

  • You can Find the Vulnerability on Non-endpoints as well, But impact is always much higher on Sensitive Endpoints ;)


Step 1:

  • Go To Repeater tab, and try various Timing based payloads to confirm the bug. More Explaination here:

Finding the Vulnerability

Step 2:

  • Once you have successfully discovored the bug, you can chain it with various bugs eg. Account Takeover by stealing session IDs, Cross side Scripting Attacks in User-Agent Header,etc. More Description here:

Exploiting the Vulnerability


Tools:

Usage:

  • Smuggler.py :

    cat alive_urls.txt | python3 smuggler.py -m GET/POST #either GET or POST

    OR

    python3 smuggler.py -u https://example.com -m GET/POST

  1. Burp_smuggler (also available in BApp store)

More Info:

Topics

https://paper.seebug.org/1049/ (Recommended !)

Portswigger Topic

Portswigger Lab

Reports (Hackerone):

Report 1

Report 2

Report 3

Report 4

Report 5

Report 6

Report 7

Report 8

Writeups (Medium.com):

Article 1

Article 2

Article 3

Article 4

Extra:

A Brief Video About Req. Smuggling

Author:

Neutron__

If you think something was missed, feel free to add/modify/delete it :)

Last updated