flawopen.com/Simulators/HTTP Request Smuggling
Schritt-für-Schritt-Sandbox zur Modellierung persistenter Socket-Pipelines, Chunked-Transfer-Grenzen und Socket-Queue-Poisoning.
Stellen Sie sich ein Förderband zwischen Kasse und Küche vor. Sie übergeben eine Box mit 1 Burger und einem zusätzlichen Bestellzettel. Die Kasse registriert 1 Artikel, der Koch entnimmt den Burger und lässt den Zettel liegen. Wenn der nächste Gast einen Salat bestellt, rechnet der Koch dessen Karte für Ihren Zettel ab!
// Vulnerable HTTP parser logic
int http_parser_execute(http_parser *parser, const char *data, size_t len) {
if (parser->flags & F_CONTENT_LENGTH && parser->flags & F_CHUNKED) {
parser->body_read_mode = READ_CHUNKED;
return PARSE_CONTINUE;
}
}
// Hardened RFC 9112 section 6.1 compliant parser
int http_parser_execute(http_parser *parser, const char *data, size_t len) {
if ((parser->flags & F_CONTENT_LENGTH) && (parser->flags & F_CHUNKED)) {
parser->status_code = 400;
parser->connection_close = 1;
return PARSE_ERROR_INVALID_HEADER;
}
}