Upload
basil-black
View
103
Download
0
Embed Size (px)
DESCRIPTION
웹 프로토콜과 로그의 이해 ★ 웹 프로토콜 ★ 통신 절차 ★ HTTP Request ★ HTTP Response. 학습 포인트 1. HTTP 구조 (Request, Response) 의 이해 2. 툴 ( 파로스 ) 사용법 – 취약점 분석의 기본. ★ 웹 프로토콜 - 통신절차 (1) 사용자는 웹 브라우저를 통해 주소를 입력 , 그러면 웹 브라우저에는 요청한 페이지가 로딩. HTML 파일. 그림 파일. 그림 . HTTP 송수신 과정. - PowerPoint PPT Presentation
Citation preview
웹 프로토콜과 로그의 이해
★ 웹 프로토콜
★ 통신 절차
★ HTTP Request
★ HTTP Response
1
학습 포인트
1. HTTP 구조 (Request, Response) 의 이해
2. 툴 ( 파로스 ) 사용법 – 취약점 분석의 기본
2
★ 웹 프로토콜 - 통신절차 (1)사용자는 웹 브라우저를 통해 주소를 입력 , 그러면 웹 브라우저에는 요청한 페이지가 로딩
그림 . HTTP 송수신 과정
HTML 파일
그림 파일
3
★ 웹 프로토콜 – 통신절차 (2)
TCP(HTTP) 는 3 가지 절차를 통해 통신이 이루어진다 .
(1)세션 연결 ( 나는 너와 통신하고 싶다 . )
(2)데이터 송 . 수신 ( 웹 브라우저에 페이지 로딩 )
(3)세션 종료 ( 통신 종료 )
….
….
….
(1)세션 연결 ( 나는 너와 통신하고 싶다 . )
(2)데이터 송 . 수신 ( 웹 브라우저에 페이지 로딩 )
(3)세션 종료 ( 통신 종료 )
HTML 페이지 1 개
.JS( 자바스크립트 ) 파일
등등
등등
그림 파일
4
★ 웹 프로토콜 – 통신절차 (3)
그림 . HTTP 세션연결 및 데이터 전송
HTTP 세션연결
HTTP 데이터송수신
5
★ 웹 프로토콜 – 통신절차 (4)
그림 . HTTP 종결 세션 종료
6
★ 웹 프로토콜 – 통신절차 (5)
• URG : 다른 패킷에 비해 가장 먼저 긴급하게 처리를 요청하기 위한 BIT• ACK : 잘 받았다는 메시지 처리를 위한 BIT• PSH : 빠른 처리 요구를 위한 BIT ( 모든 데이터가 전송되었음 ) ( 일반적으로 모든 TCP 메시지를 주고 받을 때 기본 값으로 들어감 )• RTS : 강제로 세션을 끊기 위한 BIT• SYN : TCP 세션을 시작하기 위한 BIT• FIN : 정상적인 절차로 세션을 끊기 위한 BIT
Control Flags( 연결에 대한 제어 정보 )
그림 . TCP 헤더
7
★ 웹 프로토콜 – HTTP Request(1)
Header
Body
HTTP Request( 요청 )
Header
Body
HTTP Response( 수신 )
웹 브라우저 웹 서버
웹 브라우저 웹 서버
그림 . HTTP 송 , 수신
8
★ 프로토콜 – HTTP Request(2)
○ HTTP Request 에는 무엇이 포함되어 있는가 ?
그림 . HTTP Request 정보
9
① 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
★ 웹 프로토콜 – 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
★ 웹 프로토콜 – HTTP Request(5)
○ GET Method GET 요청
메시지 (Body) 는 없음
12
★ 웹 프로토콜 – 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
★ 웹 프로토콜 – HTTP Request(7)
○ POST Method POST 요청 ( 헤더 )
POST 요청 ( 몸체 )
[ 주의 ] GET Method 와의 차이는 무엇인가 ?
14
★ 웹 프로토콜 – 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
★ 웹 프로토콜 – HTTP Response(2)
HTTP Status Code( 응답코드 ) 종류
요청 ( get /index.html )
• 200 번 ( 요청성공 )
• 201 번 ( 원격지서버에 파일 생성 )
• 302 번 ( 페이지이동 )
• 304 번 ( 로컬 캐쉬정보이용 )
• 401 번 ( 인증실패 )
• 403 번 ( 접근금지 )
• 404 번 ( 페이지없음 )
• 500 번 ( 서버에러 )
수신 ( 응답코드 )
웹 브라우저웹 서버
16
★ 프록시 툴을 이용한 HTTP 분석 (1)
그림 . HTTP 분석 및 테스트
17
* 파로스 운영 요구 사항
① 자바 1.4 이상 버전 설치 ( 파로스는 자바 어플리케이션 )
② ant( 자바 컴파일러 ) 설치 ( 파로스 소스 수정 및 컴파일 )
③ 운영 환경을 위한 시스템 환경 변수 설정
④ 환경 변수 설정 적용을 위한 시스템 리부팅
★ 프록시 툴을 이용한 HTTP 분석 (2)
파로스는 HTTP 분석 ( 프록시 기능 ) 및 취약점 분석을 보유
18
① 자바 설치 여부 확인
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
② ant 설치 여부 확인
C:\>ant
Buildfile: build.xml does not exist!Build failed
[ 주의 ] 위와 같은 메시지가 없는 경우 , ant 설치
★ 프록시 툴을 이용한 HTTP 분석 (4)
20
③ 시스템 환경 설정 – 자바 설정
★ 프록시 툴을 이용한 HTTP 분석 (5)
그림 . 자바 설정21
③ 시스템 환경 설정 (2)
2) ant 위치 지정
★ 프록시 툴을 이용한 HTTP 분석 (6)
그림 . ANT 설정
22
④ 시스템 리부팅 후 , 재 확인
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
○ 파로스 설치 – 소스 및 실행파일 다운로드 및 설치 http://www.parosproxy.org/
★ 프록시 툴을 이용한 HTTP 분석 (8)
그림 . 파로스 다운로드
24
그림 . 파로스의 운영 ( 프록시 ) 구조
★ 프록시 툴을 이용한 HTTP 분석 (9)
25
○ 파로스의 중요 모듈 • Crawl : URL 구조를 파악하고 페이지 정보를 수집하는 단계• • Scan : 수집된 정보를 바탕으로 취약점 패턴을 전송하는 단계
• Report : 취약점 결과를 제공하는 단계
• Proxy : HTTP 프록시 구조 제공
★ 프록시 툴을 이용한 HTTP 분석 (10)
26
○ 파로스 프록시 설정
★ 프록시 툴을 이용한 HTTP 분석 (11)
그림 . 파로스 포트 설정
27
○ 웹 브라우저 프록시 설정 주의할 점은 파로스의 프록시 포트와 동일해야 한다 .
그림 . 웹 브라우저 프록시 설정
★ 프록시 툴을 이용한 HTTP 분석 (12)
28
HTTP Request
HTTP Response
수집된 구조
★ 프록시 툴을 이용한 HTTP 분석 (13)
그림 . 파로스 운영 설정 테스트
29
○ 파로스 프록시를 이용한 데이터 변조 방법 (1)
http://www.elated.com/res/File/articles/development/javascript/ form-validation-with-javascript/simple_form.html
★ 프록시 툴을 이용한 HTTP 분석 (14)
그림 . 파로스를 이용한 데이터 변조 (1)
30
○ 파로스 프록시를 이용한 데이터 변조 방법 (1)
• Trap Request : 웹 브라우저에서 웹 서버로 전송되는 데이터 가로채기• Trap Response : 웹 서버에서 웹 브라우저로 전송되는 데이터 가로채기
프록시 기능
★ 프록시 툴을 이용한 HTTP 분석 (15)
그림 . 파로스를 이용한 데이터 변조 (2)
31
32