일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- Lord of BOF
- BOF
- wargame
- 웹해킹
- 정보처리기사 실기
- Payload
- 해킹
- webhacking
- LOB
- 정보보안기사
- 네트워크
- Shell code
- Spring Framework
- Pwnable.kr
- Spring
- 운영체제
- 워게임
- pwnable
- Buffer Overflow
- PWN
- stack overflow
- Spring MVC
- system hacking
- hacking
- Operating System
- SQL
- 정보보안기사 실기
- webhacking.kr
- OS
- System
- Today
- Total
DongDD's IT
HTTP Response Splitting (HTTP 응답분할, CRLF) 본문
HTTP Response Splitting (HTTP 응답분할)
HTTP Response Splitting
- HTTP Request에 있는 파라미터가 HTTP Response 헤더로 다시 전달되는 경우 파라미터내에 CR, LF가 있는 경우 HTTP 응답 분할이 일어날 수 있음
- CRLF를 통해 응답을 2개 이상으로 분리
ref) CRLF - 보통 HTTP 헤더의 끝 라인에 들어가 각 라인을 구분하는 구분자로 사용
- CR : Carriage Return (%0D)
-> 커서의 위치를 맨 앞으로 옮김
- LF : Line Feed (%0A)
-> 새로운 라인을 만듬
HTTP 응답 분할 Injection
- CRLF를 이용해 생기는 취약점을 통해 HTTP Response에 악의적인 코드나 스크립트를 삽입해 XSS를 생성하거나 캐시를 조작할 수 있음
- CRLF를 이용하여 Response를 두개 이상으로 분리하면서 원래의 HTTP Response와 별개로 새로운 HTTP Response를 만들어 조작할 수 있음
%0D%0A%20+New Header+%0D%0A와 같은 공격 구문을 사용할 수 있다.
서버 측에서 재전송하는 파라미터에서 새로운 라인을 만들어 헤더를 조작할 수 있게 된다.
만약 위와 같이 client가 보낸 data가 그대로 Response header에 담겨 돌아올 경우 CRLF를 이용해 Header조작이 가능하게 된다.
user_id를 그대로 넘겨준후 CRLF를 이용해 새로운 라인을 만들어 Header를 조작할 수 있다.
New Header부분에 새로운 Header를 추가하게 된다면 HTTP Response에서는 헤더 조작이 된 Response가 오게 될 것이다.
HTTP 응답 분할 대응 방안
- 일반적인 방법으로 HTTP Response Header에 입력되는 값을 필터링하는 방법이 있다. CR(%0D), LF(%0A)를 제거하거나 치환하는 입력 값 검증을 실시하여 헤더가 분할되는 것을 방지할 수 있다.
'IT 보안 > Web' 카테고리의 다른 글
Cross Site Scripting (XSS) - XSS, XSS 종류 (0) | 2017.09.17 |
---|---|
SQL Injection - SQL, SQL Injection, SQL Injection 종류 (0) | 2017.09.15 |