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 →