HTTP Request Smuggling CL.TE 패턴 (WEB-43)

WEB-43 HTTP Smuggling

HTTP Request Smuggling (CL.TE):
HTTP/1.1에서 Content-Length와 Transfer-Encoding 헤더가 모두 있을 때, 프론트엔드 프록시와 백엔드 서버가 다르게 해석하면 요청이 의도치 않게 분리되어 캐시 포이즈닝, 캐시 우회, 세션 고탈 등의 공격이 가능합니다.

공격 원리

  1. 요청 1 (정상): GET /api/user HTTP/1.1 + 헤더
  2. 추가 데이터: Content-Length로 정의된 바디 내에 다음 요청의 시작
  3. 프론트엔드 해석: Content-Length 바이트만 읽고 전달
  4. 백엔드 해석: Transfer-Encoding: chunked로 파싱 → 다른 경계에서 끊김
  5. 결과: 두 번째 요청이 다른 사용자 세션과 혼합

Request Smuggling 페이로드 입력