JJANG-JOON
article thumbnail
Published 2023. 6. 5. 10:30
[CRLF 인젝션] Attack
반응형

1. CRLF 인젝션이란 ?

 

CRLF(https://www.invicti.com/blog/web-security/crlf-http-header/)

CRLF Injection은 Carriage Return Line feed Injection의 약자로 각 개행문자를 의미하는 CR(\r) LF(\n)을 이용하여 HTTP Request 또는 Response를 분리하여 바디부분에  의도하지 않은 헤더필드를 삽입하거나 바디 부분에 HTML 코드를 추가하여 문제를 일으키는 공격 기법을 의미한다.

 

 

CR Carriage Return ASCII 13 %0D \r
LF Line Feed ASCII 10 %0A \n

 

2.예시

 

*헤더필드 추가

 

Request

GET /redirect?location=jj://%0d%0aSet-Cookie: session=attackersessions;

 

Response

HTTP/1.1 200 OK
Location: ws://
Set-Cookie: session=attackersessions;

 

 

*바디 부분 추가

Request

GET /redirect?location=jj://%0d%0a%0d%0a<img/src=x onerror=alert(document.cookie)>

 

Response

HTTP/1.1 200 OK
Location: jj://

<img/src=x onerror=alert(document.cookie)>

 

이처럼 Request (요청) 에서 \r\n 를 이용하여 개행할 수 있다면 취약하다고 본다.

 

 

3. 대응 방법

 

사용자의 입력 값에서 CRLF가 사용되지 않게 필터링하거나 유효성 검증(HTML Encoding 또는 Escape Character로 치환) 로직을 구현해야 한다.

 

 

**references**

https://www.invicti.com/blog/web-security/crlf-http-header/

https://www.hahwul.com/cullinan/crlf-injection/#-offensive-techniques

반응형
profile

JJANG-JOON

@JJANG-JOON

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!

profile on loading

Loading...