취약점 분석

HTTP 응답 분할(HTTP Response Splitting, CRLF) 취약점

 

 

 

 

 

1) 취약점 설명

 

CWE-113

HTTP Request에 있는 파라미터가 HTTP Response의 응답헤더로 다시 전달되는 경우 파라미터 내 개행문자 CR(Carriage Return, %0D) 혹은 LF(Line Feed %0A)가 존재하면 HTTP 응답이 분리될 수 있다. HTTP 응답 분할(HTTP Response Splitting) 공격은 이러한 취약점을 통해 응답 메시지에 악의적인 코드를 주입함으로써 XSS 및 캐시를 훼손하는 취약점이다.

 

2) 취약점 분석

 

- HTTP 헤더 원리

HTTP 헤더는 일반적으로 웹 브라우저(클라이언트)가 서버에 요청하고(클라이언트 측 Request), 웹 브라우저에 표기하기 위해 서버(서버 측 Response)로 부터 다시 받은 응답을 해석한다.

 

웹 브라우저는 다음과 같은 요청을 보낸다.

 

​[그림 1] 웹 브라우저 요청

 

이에 대해 서버는 다음과 같은 응답을 보내고, 웹 브라우저는 응답을 해석하여 웹 페이지를 출력한다.

 

​[그림 2] 서버 응답

 

 

- HTTP 응답 분할 취약 테스트 환경 구성

HTTP 응답 분할 취약점 테스트를 위해 웹 서버 MIcrosoft-IIS/5.1과 asp 언어를 사용하여 게시판에 있는 글을 조회하는 모듈을 구현하였다. 글 조회 시 Request 패킷의 파라미터 값이 Response 패킷 헤더에 삽입 되도록 하였다.

게시판에서 해당 글을 선택했을 경우, 글 번호 파라미터와 함께 글 상세보기(board_view.asp) 페이지로 전환하는 소스코드는 다음과 같다.

 

[그림 3] 게시판 리스트에서 해당 글 클릭 시 소스코드

 

 

글 상세보기(board_view.asp) 페이지에서 클릭한 글의 번호를 받고, 헤더에 추가적으로 입력할 파라미터 test 를 정의한다.

 

경축! 아무것도 안하여 에스천사게임즈가 새로운 모습으로 재오픈 하였습니다.
어린이용이며, 설치가 필요없는 브라우저 게임입니다.
https://s1004games.com

[그림 4] 클릭한 글 상세보기

 

 

 

- HTTP 응답 분할 취약 테스트

게시글 열람 시 Request 패킷 내 파라미터 num, test가 전송됨을 확인한 후, test 파라미터에 HTTP 응답 분할을 위한 공격구문을 추가한다.

 

□ 공격 구문 :

%0d%0aContentLength:%200%0d%0d%0a%0aHTTP/1.1%20200%20OK%0d%0aContent-Type:%20text/html%0d%0aContent-Length:%2019%0d%0a%0d%0aAttack 

 

​[그림 5] 게시판 글 선택

 

[그림 6] 파라미터 내 HTTP 분할 공격 구문 삽입

 

 

HTTP 응답 분할 공격 구문을 삽입하여 전송한 결과, 서버 측에서 공격 코드에 있는 파라미터(/board_view.asp?num=5&test=3 이후)를 그대로 받아서 처리하므로 Response 패킷 내 헤더(HTTP/1.1 200 OK 이하)가 2개 존재하게 된다.

 

[그림 7] HTTP 응답 분할

 

 

두 번째 응답 값 내 <htm>Attack</html>이 실행되고, 그 이하 첫 번째 응답 값 일부를 모두 문자열로 인식하여 문자 그대로 화면에 출력한다. 또한 첫 번째 응답 값인 <html><head><title> 게시물 읽기 <title> 이하가 실행되어 웹 브라우저에 출력된다.

 

[그림 8] 두 응답 값 확인

 

 

[그림 9] 두 개의 응답에 대한 결과

 

 

 

3) 대응방안

 

 

HTTP 응답 헤더에 입력되는 값에 대하여 개행문자 CR(Carriage Return, %0D) 혹은 LF(Line Feed, %0A)를 제거/치환하는 등 입력에 대한 유효성 검사를 실시함으로써 헤더가 두 개 이상으로 나뉘어지는 것을 방지한다.

예) String test = test.replaceAll("\r" , " ").replaceAll("\n" , " "); 

 

 

 

 

- 글 : WH팀 김민희

 

[출처] http://blog.naver.com/PostView.nhn?blogId=skinfosec2000&logNo=220694143144&parentCategoryNo=&categoryNo=12&viewDate=&isShowPopularPosts=true&from=search

본 웹사이트는 광고를 포함하고 있습니다.
광고 클릭에서 발생하는 수익금은 모두 웹사이트 서버의 유지 및 관리, 그리고 기술 콘텐츠 향상을 위해 쓰여집니다.
번호 제목 글쓴이 날짜 조회 수
공지 침투테스트(취약점검점검, 모의해킹) 문의 / 답변 졸리운_곰 2017.12.10 28360
18 모의해킹 수행 표준(PTES) 소개 file 졸리운_곰 2017.11.20 194
17 웹취약점 분석 및 진단 [템플릿] file 졸리운_곰 2017.11.18 592
16 [웹 취약점 점검] Web Application Security Scanner List 졸리운_곰 2017.11.17 198
15 [취약점 점검툴] Vulnerability Scanning Tools 졸리운_곰 2017.11.17 296
14 Kali 2.0 (VMware Tools 설치) 한글 깨짐현상 해결과 한글 타자 쓰기 file 졸리운_곰 2016.08.09 546
13 NMAP 사용법 졸리운_곰 2016.05.18 340
12 Nmap을 이용한 네트워크 스캐닝과 방어하기 졸리운_곰 2016.05.18 258
11 네트워크 허점을 구석구석! 무료 취약점 스캐너 6종 file 졸리운_곰 2016.05.12 324
10 [스크랩] nmap 명령어 및 사용법 file 졸리운_곰 2016.04.21 473
9 [침투 테스트] 모의해킹[Pentest]의 두번째 단계 스캐닝 file 졸리운_곰 2016.04.20 269
8 해킹방어의 최고수, HDCON에서 가린다 file 졸리운_곰 2015.11.06 200
7 [Kali LInux] WLAN 점검 툴을 개발할때 필요한 Lib libiw.a file 졸리운_곰 2015.05.07 448
6 윤리적·합법적 소셜 엔지니어링 침투 테스트 위한 6가지 고려 사항 졸리운_곰 2014.12.31 348
5 모의해킹결과보고서_hYd3.pdf file 졸리운_곰 2014.11.12 4541
4 취약점 보고서 .doc file 졸리운_곰 2014.11.12 623
3 취약점 점검결과 보고서 testasp_vuln_com_bitscanner_report.pdf file 졸리운_곰 2014.11.12 1569
2 08 - 모의해킹에 대한 소개.pdf file 졸리운_곰 2014.11.12 302
1 역쉘공격 - Reverse Shell Cheat Sheet 졸리운_곰 2014.11.10 271
대표 김성준 주소 : 경기 용인 분당수지 U타워 등록번호 : 142-07-27414
통신판매업 신고 : 제2012-용인수지-0185호 출판업 신고 : 수지구청 제 123호 개인정보보호최고책임자 : 김성준 sjkim70@stechstar.com
대표전화 : 010-4589-2193 [fax] 02-6280-1294 COPYRIGHT(C) stechstar.com ALL RIGHTS RESERVED