flawopen.com/Simulators/HTTP Request Smuggling

Web Infrastructure / HTTP Parser Desync

交互式 HTTP 请求走私可视化模拟器

步进式交互沙箱:模拟反向代理至后端持久 TCP 连接流、分块传输编码边界与请求队列投毒机制。

💡 通俗易懂的比喻 (ELI5)

想象前台收银员和后厨厨师之间的传送带。你递给收银员一个写着“1件物品”的盒子,里面装有汉堡和一张附赠的额外订单单据。收银员只按1件放行,厨师取出汉堡后,把额外单据留在了台面上。当下个顾客点沙拉时,厨师直接把他们的银行卡刷在了你的单据上!

Source Code Diff: Ambiguous Header Handling

UNPATCHED FLAW: PERMISSIVE DUAL HEADER EVALUATION
// 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 PATCH: STRICT RFC 9112 REJECTION & CONNECTION CLOSE
// 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;
    }
}
← 交互式漏洞模拟器与可视化沙箱 CVE-2024-27983 Node.js Teardown →