flawopen.com/Simulators/HTTP Request Smuggling
Simulador visual interactivo paso a paso que modela transmisiones persistentes entre proxy y backend, fragmentación chunked y envenenamiento de socket.
Imagine una cinta transportadora entre un cajero y el cocinero. Entrega una caja con 1 hamburguesa y una nota de pedido extra. El cajero registra 1 plato, pero el cocinero prepara la hamburguesa y deja la nota sobre la mesa. Cuando el siguiente cliente pide ensalada, ¡el cocinero usa su tarjeta para pagar su nota previa!
// 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;
}
}