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