Home CRLF Injection & HTTP Response Splitting
Post
Cancel

CRLF Injection & HTTP Response Splitting

최근 CTF 문제를 풀다가 CRLF Injection을 통해 HTTP Response Splitting으로 flag를 찾는 문제가 있었습니다.
개념 이해가 부족한거 같아 글로 작성하려고 합니다.


CRLF Injection

CRLF Injection은 Carriage Return과 Line Feed를 Inject 하는 공격입니다. Carriage Return과 Line Feed는 줄의 종료를 의미합니다.

  • Carriage Return : \r
  • Line Feed : \n

Windows에서는 줄의 끝을 기록하기 위해 CR과 LF가 모두 필요하고 반면 Linux/UNIX에서는 LF만 필요합니다.

HTTP 프로토콜에서는 CR-LF 시퀀스는 항상 라인을 종료하는 데 사용됩니다.

RFC 문서를 보면 마지막 CRLF 시퀀스를 제외하고 CR or LF는 허용되서는 안된다고 적혀있습니다.

RFC

HTTP Response Splitting

HTTP Response Splitting(HTTP응답분할) 취약점은 데이터를 Request에 CR-LF 문자를 입력하여 Response에서 응답의 헤더와 본문을 제어할 수 있는 취약점입니다.

아래는 SK인포섹 HTTP 응답 분할 취약점에 있는 예시입니다. HTTP