flawopen.com/Simulators/HTTP Request Smuggling
Sandbox visual interativo passo a passo modelando conexões persistentes entre proxy e backend, delimitações de chunks e envenenamento de fila.
Imagine uma esteira entre um caixa e o cozinheiro. Você entrega uma caixa com 1 hambúrguer e 1 pedido extra oculto. O caixa registra 1 item, mas o cozinheiro processa o hambúrguer e deixa o pedido extra no balcão. Quando o próximo cliente pede uma salada, o cozinheiro anexa o cartão dele ao seu pedido extra!
// 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;
}
}