32
웹 웹웹웹웹웹 웹웹웹 웹웹 웹 웹웹웹웹 웹웹 웹웹 HTTP Request HTTP Response 1

웹 프로토콜과 로그의 이해 ★ 웹 프로토콜 ★ 통신 절차 ★ HTTP Request ★ HTTP Response

Embed Size (px)

DESCRIPTION

웹 프로토콜과 로그의 이해 ★ 웹 프로토콜 ★ 통신 절차 ★ HTTP Request ★ HTTP Response. 학습 포인트 1. HTTP 구조 (Request, Response) 의 이해 2. 툴 ( 파로스 ) 사용법 – 취약점 분석의 기본. ★ 웹 프로토콜 - 통신절차 (1) 사용자는 웹 브라우저를 통해 주소를 입력 , 그러면 웹 브라우저에는 요청한 페이지가 로딩. HTML 파일. 그림 파일. 그림 . HTTP 송수신 과정. - PowerPoint PPT Presentation

Citation preview

Page 1: 웹 프로토콜과 로그의 이해 ★ 웹 프로토콜 ★ 통신 절차 ★  HTTP Request ★  HTTP Response

웹 프로토콜과 로그의 이해

★ 웹 프로토콜

★ 통신 절차

★ HTTP Request

★ HTTP Response

1

Page 2: 웹 프로토콜과 로그의 이해 ★ 웹 프로토콜 ★ 통신 절차 ★  HTTP Request ★  HTTP Response

학습 포인트

1. HTTP 구조 (Request, Response) 의 이해

2. 툴 ( 파로스 ) 사용법 – 취약점 분석의 기본

2

Page 3: 웹 프로토콜과 로그의 이해 ★ 웹 프로토콜 ★ 통신 절차 ★  HTTP Request ★  HTTP Response

★ 웹 프로토콜 - 통신절차 (1)사용자는 웹 브라우저를 통해 주소를 입력 , 그러면 웹 브라우저에는 요청한 페이지가 로딩

그림 . HTTP 송수신 과정

HTML 파일

그림 파일

3

Page 4: 웹 프로토콜과 로그의 이해 ★ 웹 프로토콜 ★ 통신 절차 ★  HTTP Request ★  HTTP Response

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

TCP(HTTP) 는 3 가지 절차를 통해 통신이 이루어진다 .

(1)세션 연결 ( 나는 너와 통신하고 싶다 . )

(2)데이터 송 . 수신 ( 웹 브라우저에 페이지 로딩 )

(3)세션 종료 ( 통신 종료 )

….

….

….

(1)세션 연결 ( 나는 너와 통신하고 싶다 . )

(2)데이터 송 . 수신 ( 웹 브라우저에 페이지 로딩 )

(3)세션 종료 ( 통신 종료 )

HTML 페이지 1 개

.JS( 자바스크립트 ) 파일

등등

등등

그림 파일

4

Page 5: 웹 프로토콜과 로그의 이해 ★ 웹 프로토콜 ★ 통신 절차 ★  HTTP Request ★  HTTP Response

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

그림 . HTTP 세션연결 및 데이터 전송

HTTP 세션연결

HTTP 데이터송수신

5

Page 6: 웹 프로토콜과 로그의 이해 ★ 웹 프로토콜 ★ 통신 절차 ★  HTTP Request ★  HTTP Response

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

그림 . HTTP 종결 세션 종료

6

Page 7: 웹 프로토콜과 로그의 이해 ★ 웹 프로토콜 ★ 통신 절차 ★  HTTP Request ★  HTTP Response

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

• URG : 다른 패킷에 비해 가장 먼저 긴급하게 처리를 요청하기 위한 BIT• ACK : 잘 받았다는 메시지 처리를 위한 BIT• PSH : 빠른 처리 요구를 위한 BIT ( 모든 데이터가 전송되었음 ) ( 일반적으로 모든 TCP 메시지를 주고 받을 때 기본 값으로 들어감 )• RTS : 강제로 세션을 끊기 위한 BIT• SYN : TCP 세션을 시작하기 위한 BIT• FIN : 정상적인 절차로 세션을 끊기 위한 BIT

Control Flags( 연결에 대한 제어 정보 )

그림 . TCP 헤더

7

Page 8: 웹 프로토콜과 로그의 이해 ★ 웹 프로토콜 ★ 통신 절차 ★  HTTP Request ★  HTTP Response

★ 웹 프로토콜 – HTTP Request(1)

Header

Body

HTTP Request( 요청 )

Header

Body

HTTP Response( 수신 )

웹 브라우저 웹 서버

웹 브라우저 웹 서버

그림 . HTTP 송 , 수신

8

Page 9: 웹 프로토콜과 로그의 이해 ★ 웹 프로토콜 ★ 통신 절차 ★  HTTP Request ★  HTTP Response

★ 프로토콜 – HTTP Request(2)

○ HTTP Request 에는 무엇이 포함되어 있는가 ?

그림 . HTTP Request 정보

9

Page 10: 웹 프로토콜과 로그의 이해 ★ 웹 프로토콜 ★ 통신 절차 ★  HTTP Request ★  HTTP Response

① 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 // 요청 도메인

★ 웹 프로토콜 – HTTP Request(3)

○ HTTP Request 에 포함된 상세 정보

10

Page 11: 웹 프로토콜과 로그의 이해 ★ 웹 프로토콜 ★ 통신 절차 ★  HTTP Request ★  HTTP Response

★ 웹 프로토콜 – HTTP Request(4)

○ GET Method 2,083 정도의 길이 데이터만을 처리 ( 게시판 글 입력 처리 불가 등 )

Method 구조 설 명

GET GET [request-uri]?query_string HTTP/1.1Host:[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 String11

Page 12: 웹 프로토콜과 로그의 이해 ★ 웹 프로토콜 ★ 통신 절차 ★  HTTP Request ★  HTTP Response

★ 웹 프로토콜 – HTTP Request(5)

○ GET Method GET 요청

메시지 (Body) 는 없음

12

Page 13: 웹 프로토콜과 로그의 이해 ★ 웹 프로토콜 ★ 통신 절차 ★  HTTP Request ★  HTTP Response

★ 웹 프로토콜 – HTTP Request(6)

○ POST Method 길이 제한이 없어 많은 입력 데이터를 처리 ( 게시판 입력 글 처리 가능 )

○ HTTP POST 구조 (URI + Query String)

http://www.evenstar.co.kr/wizboard.php ( http header 에 포함 ) URI

BID=notice ( http Body 에 포함 ) Query String

Method 전송 형태 설 명

POST

POST [request-uri] HTTP/1.1Host:[Hostname] 혹은 [IP]Content-Length:[Bytes] Content-Type:[Content Type]

[query-string] 혹은 [ 데이터 ]

게시판 등과 같은 폼 데이터 및 CGI 프로그램으로 구성된 페이지를 위해 처리하기 위해 POST 방식으로 전송하게 되며 , 웹 브라우저와 시스템 간 데이터 처리로 웹 브라우저에는 페이지 정보만을 확인할 수 있다 .

13

Page 14: 웹 프로토콜과 로그의 이해 ★ 웹 프로토콜 ★ 통신 절차 ★  HTTP Request ★  HTTP Response

★ 웹 프로토콜 – HTTP Request(7)

○ POST Method POST 요청 ( 헤더 )

POST 요청 ( 몸체 )

[ 주의 ] GET Method 와의 차이는 무엇인가 ?

14

Page 15: 웹 프로토콜과 로그의 이해 ★ 웹 프로토콜 ★ 통신 절차 ★  HTTP Request ★  HTTP Response

★ 웹 프로토콜 – HTTP Response(1)

① HTTP/1.1 OK 200 // 프로토콜 버전 및 응답코드

② Server: NCSA/1.4.2 // 웹 서버 배너 정보

③ Content-type: text/html // MIME 타입

④ Content-length: 107 // HTTP Body 사이즈

⑤ <html><head></head> // 페이지 구성 정보 (HTML 태그 등 )

<Title>http protocol</Title>

<body>

The understanding of http protocol

</body></html>

○ HTTP Response 에 포함된 상세 정보

• HTTP Header 포함 범위 : (1), (2), (3),

(4)

• HTTP Body 포함 범위 : (5)

Header

Body

빈 공백 1 줄

15

Page 16: 웹 프로토콜과 로그의 이해 ★ 웹 프로토콜 ★ 통신 절차 ★  HTTP Request ★  HTTP Response

★ 웹 프로토콜 – HTTP Response(2)

HTTP Status Code( 응답코드 ) 종류

요청 ( get /index.html )

• 200 번 ( 요청성공 )

• 201 번 ( 원격지서버에 파일 생성 )

• 302 번 ( 페이지이동 )

• 304 번 ( 로컬 캐쉬정보이용 )

• 401 번 ( 인증실패 )

• 403 번 ( 접근금지 )

• 404 번 ( 페이지없음 )

• 500 번 ( 서버에러 )

수신 ( 응답코드 )

웹 브라우저웹 서버

16

Page 17: 웹 프로토콜과 로그의 이해 ★ 웹 프로토콜 ★ 통신 절차 ★  HTTP Request ★  HTTP Response

★ 프록시 툴을 이용한 HTTP 분석 (1)

그림 . HTTP 분석 및 테스트

17

Page 18: 웹 프로토콜과 로그의 이해 ★ 웹 프로토콜 ★ 통신 절차 ★  HTTP Request ★  HTTP Response

* 파로스 운영 요구 사항

① 자바 1.4 이상 버전 설치 ( 파로스는 자바 어플리케이션 )

② ant( 자바 컴파일러 ) 설치 ( 파로스 소스 수정 및 컴파일 )

③ 운영 환경을 위한 시스템 환경 변수 설정

④ 환경 변수 설정 적용을 위한 시스템 리부팅

★ 프록시 툴을 이용한 HTTP 분석 (2)

파로스는 HTTP 분석 ( 프록시 기능 ) 및 취약점 분석을 보유

18

Page 19: 웹 프로토콜과 로그의 이해 ★ 웹 프로토콜 ★ 통신 절차 ★  HTTP Request ★  HTTP Response

① 자바 설치 여부 확인

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 설치되지 않음

★ 프록시 툴을 이용한 HTTP 분석 (3)

19

Page 20: 웹 프로토콜과 로그의 이해 ★ 웹 프로토콜 ★ 통신 절차 ★  HTTP Request ★  HTTP Response

② ant 설치 여부 확인

C:\>ant

Buildfile: build.xml does not exist!Build failed

[ 주의 ] 위와 같은 메시지가 없는 경우 , ant 설치

★ 프록시 툴을 이용한 HTTP 분석 (4)

20

Page 21: 웹 프로토콜과 로그의 이해 ★ 웹 프로토콜 ★ 통신 절차 ★  HTTP Request ★  HTTP Response

③ 시스템 환경 설정 – 자바 설정

★ 프록시 툴을 이용한 HTTP 분석 (5)

그림 . 자바 설정21

Page 22: 웹 프로토콜과 로그의 이해 ★ 웹 프로토콜 ★ 통신 절차 ★  HTTP Request ★  HTTP Response

③ 시스템 환경 설정 (2)

2) ant 위치 지정

★ 프록시 툴을 이용한 HTTP 분석 (6)

그림 . ANT 설정

22

Page 23: 웹 프로토콜과 로그의 이해 ★ 웹 프로토콜 ★ 통신 절차 ★  HTTP Request ★  HTTP Response

④ 시스템 리부팅 후 , 재 확인

C:\>java –versionjava 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:\>antBuildfile: build.xml does not exist!Build failed

★ 프록시 툴을 이용한 HTTP 분석 (7)

23

Page 24: 웹 프로토콜과 로그의 이해 ★ 웹 프로토콜 ★ 통신 절차 ★  HTTP Request ★  HTTP Response

○ 파로스 설치 – 소스 및 실행파일 다운로드 및 설치 http://www.parosproxy.org/

★ 프록시 툴을 이용한 HTTP 분석 (8)

그림 . 파로스 다운로드

24

Page 25: 웹 프로토콜과 로그의 이해 ★ 웹 프로토콜 ★ 통신 절차 ★  HTTP Request ★  HTTP Response

그림 . 파로스의 운영 ( 프록시 ) 구조

★ 프록시 툴을 이용한 HTTP 분석 (9)

25

Page 26: 웹 프로토콜과 로그의 이해 ★ 웹 프로토콜 ★ 통신 절차 ★  HTTP Request ★  HTTP Response

○ 파로스의 중요 모듈 • Crawl : URL 구조를 파악하고 페이지 정보를 수집하는 단계• • Scan : 수집된 정보를 바탕으로 취약점 패턴을 전송하는 단계

• Report : 취약점 결과를 제공하는 단계

• Proxy : HTTP 프록시 구조 제공

★ 프록시 툴을 이용한 HTTP 분석 (10)

26

Page 27: 웹 프로토콜과 로그의 이해 ★ 웹 프로토콜 ★ 통신 절차 ★  HTTP Request ★  HTTP Response

○ 파로스 프록시 설정

★ 프록시 툴을 이용한 HTTP 분석 (11)

그림 . 파로스 포트 설정

27

Page 28: 웹 프로토콜과 로그의 이해 ★ 웹 프로토콜 ★ 통신 절차 ★  HTTP Request ★  HTTP Response

○ 웹 브라우저 프록시 설정 주의할 점은 파로스의 프록시 포트와 동일해야 한다 .

그림 . 웹 브라우저 프록시 설정

★ 프록시 툴을 이용한 HTTP 분석 (12)

28

Page 29: 웹 프로토콜과 로그의 이해 ★ 웹 프로토콜 ★ 통신 절차 ★  HTTP Request ★  HTTP Response

HTTP Request

HTTP Response

수집된 구조

★ 프록시 툴을 이용한 HTTP 분석 (13)

그림 . 파로스 운영 설정 테스트

29

Page 30: 웹 프로토콜과 로그의 이해 ★ 웹 프로토콜 ★ 통신 절차 ★  HTTP Request ★  HTTP Response

○ 파로스 프록시를 이용한 데이터 변조 방법 (1)

http://www.elated.com/res/File/articles/development/javascript/ form-validation-with-javascript/simple_form.html

★ 프록시 툴을 이용한 HTTP 분석 (14)

그림 . 파로스를 이용한 데이터 변조 (1)

30

Page 31: 웹 프로토콜과 로그의 이해 ★ 웹 프로토콜 ★ 통신 절차 ★  HTTP Request ★  HTTP Response

○ 파로스 프록시를 이용한 데이터 변조 방법 (1)

• Trap Request : 웹 브라우저에서 웹 서버로 전송되는 데이터 가로채기• Trap Response : 웹 서버에서 웹 브라우저로 전송되는 데이터 가로채기

프록시 기능

★ 프록시 툴을 이용한 HTTP 분석 (15)

그림 . 파로스를 이용한 데이터 변조 (2)

31

Page 32: 웹 프로토콜과 로그의 이해 ★ 웹 프로토콜 ★ 통신 절차 ★  HTTP Request ★  HTTP Response

32