웹 프로토콜 – 통신절차(5)

Download Report

Transcript 웹 프로토콜 – 통신절차(5)

1
웹 프로토콜과 로그의 이해
★ 웹 프로토콜
★ 통신 절차
★ HTTP Request
★ HTTP Response
학습 포인트
1. HTTP 구조(Request, Response)의 이해
2. 툴(파로스)사용법 – 취약점 분석의 기본
2
★ 웹 프로토콜 - 통신절차(1)
사용자는 웹 브라우저를 통해 주소를 입력, 그러면 웹 브라우저에는 요청한 페이지가 로딩
HTML 파일
그림 파일
그림. HTTP 송수신 과정
3
★ 웹 프로토콜 – 통신절차(2)
TCP(HTTP)는 3가지 절차를 통해 통신이 이루어진다.
(1)
세션 연결 ( 나는 너와 통신하고 싶다. )
(2)
데이터 송.수신 ( 웹 브라우저에 페이지 로딩 )
(3)
세션 종료 ( 통신 종료 )
 HTML 페이지 1개
 .JS(자바스크립트)파일
….
….
 등등
….
 등등
(1)
세션 연결 ( 나는 너와 통신하고 싶다. )
(2)
데이터 송.수신 ( 웹 브라우저에 페이지 로딩 )
(3)
세션 종료 ( 통신 종료 )
 그림 파일
4
★ 웹 프로토콜 – 통신절차(3)
HTTP 세션연결
그림. HTTP 세션연결 및 데이터 전송
HTTP 데이터송수신
5
★ 웹 프로토콜 – 통신절차(4)
그림. HTTP 종결
세션 종료
6
★ 웹 프로토콜 – 통신절차(5)
Control Flags
( 연결에 대한 제어 정보 )
그림. TCP 헤더
• URG : 다른 패킷에 비해 가장 먼저 긴급하게 처리를 요청하기 위한 BIT
• ACK : 잘 받았다는 메시지 처리를 위한 BIT
• PSH : 빠른 처리 요구를 위한 BIT ( 모든 데이터가 전송되었음 )
(일반적으로 모든 TCP 메시지를 주고 받을 때 기본 값으로 들어감)
• RTS : 강제로 세션을 끊기 위한 BIT
• SYN : TCP 세션을 시작하기 위한 BIT
• FIN : 정상적인 절차로 세션을 끊기 위한 BIT
7
★ 웹 프로토콜 – HTTP Request(1)
HTTP Request(요청)
Header
웹 브라우저
Body
웹 서버
HTTP Response(수신)
Header
웹 브라우저
Body
웹 서버
그림. HTTP 송, 수신
8
★ 프로토콜 – HTTP Request(2)
○ HTTP Request 에는 무엇이 포함되어 있는가 ?
그림. HTTP Request 정보
9
★ 웹 프로토콜 – HTTP Request(3)
○ HTTP Request에 포함된 상세 정보
① GET /index.html HTTP/1.1
// 요청 URL 정보(메소드, 페이지) 및 HTTP 버전
② user-agent: MSIE 6.0; Windows NT 5.0
// 사용자 웹 브라우저 종류
③ accept: text/html; */*
// 요청 데이터 타입
④ cookie: name = value
// 쿠키(인증 정보)
⑤ referer: http://www.bbb.com
// 경유지 URL
⑥ host: www.evenstar.co.kr
// 요청 도메인
10
★ 웹 프로토콜 – HTTP Request(4)
○ GET Method
2,083 정도의 길이 데이터만을 처리( 게시판 글 입력 처리 불가 등 )
Method
GET
구조
설명
GET [request-uri]?query_string HTTP/1.1
Host:[Hostname] 혹은 [IP]
GET 요청 방식은 요청
URI(URL)가 가지고 있
는 정보를 검색하기 위
해 서버 측에 요청하는
형태이다.
○ HTTP GET 구조 (URI + Query String)
http://www.evenstar.co.kr/webpage/biglook_a.html ( http header에 포함 )
URI
http://www.evenstar.co.kr/wizboard.php?BID=notice ( http header에 포함 )
URI
Query String
11
★ 웹 프로토콜 – HTTP Request(5)
○ GET Method
GET 요청
메시지(Body)는 없음
12
★ 웹 프로토콜 – HTTP Request(6)
○ POST Method
길이 제한이 없어 많은 입력 데이터를 처리( 게시판 입력 글 처리 가능 )
Method
전송 형태
설명
POST
POST [request-uri] HTTP/1.1
Host:[Hostname] 혹은 [IP]
Content-Length:[Bytes]
Content-Type:[Content Type]
게시판 등과 같은 폼 데이터
및 CGI 프로그램으로 구성된
페이지를 위해 처리하기 위해
POST 방식으로 전송하게 되
며, 웹 브라우저와 시스템 간
데이터 처리로 웹 브라우저에
는 페이지 정보만을 확인할
수 있다.
[query-string] 혹은 [데이터]
○ HTTP POST 구조 (URI + Query String)
http://www.evenstar.co.kr/wizboard.php
URI
BID=notice
Query String
( http header에 포함 )
( http Body에 포함 )
13
★ 웹 프로토콜 – HTTP Request(7)
○ POST Method
POST 요청(헤더)
POST 요청(몸체)
[주의] GET Method와의 차이는 무엇인가?
14
★ 웹 프로토콜 – HTTP Response(1)
○ HTTP Response에 포함된 상세 정보
① HTTP/1.1 OK 200
// 프로토콜 버전 및 응답코드
② Server: NCSA/1.4.2
// 웹 서버 배너 정보
③ Content-type: text/html
// MIME타입
④ Content-length: 107
// HTTP Body 사이즈
Header
빈 공백 1줄
⑤ <html><head></head>
// 페이지 구성 정보(HTML태그 등)
<Title>http protocol</Title>
<body>
Body
The understanding of http protocol
</body></html>
• HTTP Header 포함 범위 : (1), (2), (3), (4)
• HTTP Body 포함 범위
: (5)
15
★ 웹 프로토콜 – HTTP Response(2)
HTTP Status Code(응답코드) 종류
요청( get /index.html )
수신(응답코드)
웹 브라우저
• 200번(요청성공)
웹 서버
• 201번(원격지서버에 파일 생성)
• 302번(페이지이동)
• 304번(로컬 캐쉬정보이용)
• 401번(인증실패)
• 403번(접근금지)
• 404번(페이지없음)
• 500번(서버에러)
16
★ 프록시 툴을 이용한 HTTP분석(1)
그림. HTTP분석 및 테스트
17
★ 프록시 툴을 이용한 HTTP분석(2)
파로스는 HTTP분석 (프록시 기능) 및 취약점 분석을 보유
* 파로스 운영 요구 사항
① 자바 1.4 이상 버전 설치 ( 파로스는 자바 어플리케이션 )
② ant(자바 컴파일러) 설치 ( 파로스 소스 수정 및 컴파일 )
③ 운영 환경을 위한 시스템 환경 변수 설정
④ 환경 변수 설정 적용을 위한 시스템 리부팅
18
★ 프록시 툴을 이용한 HTTP분석(3)
① 자바 설치 여부 확인
C:\>java –version
java version "1.4.2_03"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.4.2_03-b02)
Java HotSpot(TM) Client VM (build 1.4.2_03-b02, mixed mode)
[주의] 위와 같은 메시지가 없는 경우, java 설치되지 않음
19
★ 프록시 툴을 이용한 HTTP분석(4)
② ant 설치 여부 확인
C:\>ant
Buildfile: build.xml does not exist!
Build failed
[주의] 위와 같은 메시지가 없는 경우, ant 설치
20
★ 프록시 툴을 이용한 HTTP분석(5)
③ 시스템 환경 설정 – 자바 설정
그림. 자바 설정
21
★ 프록시 툴을 이용한 HTTP분석(6)
③ 시스템 환경 설정(2)
2) ant 위치 지정
그림. ANT 설정
22
★ 프록시 툴을 이용한 HTTP분석(7)
④ 시스템 리부팅 후, 재 확인
C:\>java –version
java version "1.4.2_03"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.4.2_03-b02)
Java HotSpot(TM) Client VM (build 1.4.2_03-b02, mixed mode)
C:\>ant
Buildfile: build.xml does not exist!
Build failed
23
★ 프록시 툴을 이용한 HTTP분석(8)
○ 파로스 설치 – 소스 및 실행파일 다운로드 및 설치
http://www.parosproxy.org/
그림. 파로스 다운로드
24
★ 프록시 툴을 이용한 HTTP분석(9)
그림. 파로스의 운영(프록시)구조
25
★ 프록시 툴을 이용한 HTTP분석(10)
○ 파로스의 중요 모듈
•
•
•
Crawl : URL구조를 파악하고 페이지 정보를 수집하는 단계
•
Report : 취약점 결과를 제공하는 단계
•
Proxy : HTTP 프록시 구조 제공
Scan
: 수집된 정보를 바탕으로 취약점 패턴을 전송하는 단계
26
★ 프록시 툴을 이용한 HTTP분석(11)
○ 파로스 프록시 설정
그림. 파로스 포트 설정
27
★ 프록시 툴을 이용한 HTTP분석(12)
○ 웹 브라우저 프록시 설정
주의할 점은 파로스의 프록시 포트와 동일해야 한다.
그림. 웹 브라우저 프록시 설정
28
★ 프록시 툴을 이용한 HTTP분석(13)
HTTP Request
HTTP Response
수집된 구조
그림. 파로스 운영 설정 테스트
29
★ 프록시 툴을 이용한 HTTP분석(14)
○ 파로스 프록시를 이용한 데이터 변조 방법(1)
http://www.elated.com/res/File/articles/development/javascript/
form-validation-with-javascript/simple_form.html
그림. 파로스를 이용한 데이터 변조(1)
30
★ 프록시 툴을 이용한 HTTP분석(15)
○ 파로스 프록시를 이용한 데이터 변조 방법(1)
•
•
Trap Request : 웹 브라우저에서 웹 서버로 전송되는 데이터 가로채기
Trap Response : 웹 서버에서 웹 브라우저로 전송되는 데이터 가로채기
프록시 기능
그림. 파로스를 이용한 데이터 변조(2)
31
32