flawopen.com/Simulators/HTTP Request Smuggling

Web Infrastructure / HTTP Parser Desync

対話型 HTTPリクエストスマグリング シミュレーター

リバースプロキシとバックエンド間のキープアライブ接続、チャンク境界解析、ソケットキュー汚染をステップごとに検証するビジュアルツール。

💡 たとえ話で学ぶ直感的解説 (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 →