실습 전 간단하게 HTTP패킷에 대한 이해가 필요합니다. HTTP패킷의 종류는 요청과 응답 패킷이 있습니다. 이 패킷은 다시 Header와 Body부분으로 나눠집니다.
헤더부분에는 해당 패킷에 대한 메타데이터 즉, 패킷에 대한 설명정보가 포함되어 있습니다. Body부분에는 파라미터, 응답 페이지 등에 대한 실제 정보들이 삽입되어 있습니다.
아래는 요청, 응답패킷의 주요헤더 정보입니다.
1) 요청헤더 ① GET /test/test.htm HTTP /1.1 - 요청 method 와 요청 파일정보, http 버전 - HTTP 프로토콜은 클라이언트가 서버에게 요청하는 방식에 대한 몇 가지 동작을 정의 즉, 요청 method 란 클라이언트가 서버로의 요청하는 방법을 명시
② Accept - 클라이언트가 허용할 수 있는 파일 형식(MIME TYPE)
③ User-Agent - 클라이언트 소프트웨어(브라우저,os등) 의 이름과 버전 등
- 요청을 한 서버의 Host
⑤ If-Modified-Since - 페이지가 수정되었으면 최신 버전 페이지 요청을 위한 필드
2) 응답헤더 ① HTTP /1.1 200 OK - HTTP 버전과 응답 코드 (200 성공)
② Server - 웹 서버 정보
③ Date - 현재 날짜 정보
④ Content-Type - 요청한 파일의 MIME 타입
⑤ Last-Modified - 요청한 파일의 최종 수정일
⑥ Content-Length - 요청에 대한 응답 데이터의 길이(바이트 단위)
⑦ ETag - 캐쉬 업데이트 정보를 위한 임의의 식별 숫자 |
첫 번째 취약점인 Http Basic입니다. 웹 서버와 브라우저간의 데이터 전송을 이해하는 간단한 실습이 되겠습니다. 1) 정상적인 단어를 입력 합니다.
2) 프록시 툴을 이용하여 요청패킷을 캡쳐 및 분석합니다. POST방식의 요청으로 Person이라는 파라미터에 포함되어 전송되는 것을 볼 수 있습니다.
3) 실제 자바코드를 살펴본 결과 reverse()라는 함수를 사용하고 있었습니다. 이 함수는 문자열을 역순으로 바꾸는 함수입니다.
4) 결과적으로 문자열이 거꾸로 출력되는 것을 확인할 수 있고, 해당 Lesson이 종료됩니다. |
'Web Security > War_Game' 카테고리의 다른 글
[War_Game : WebGoat] 2. 접근제어 취약점 (Access Control Flaws) - 1 (0) | 2014.10.24 |
---|---|
[War_Game : WebGoat] 1. General(일반 취약점) - 2 (0) | 2014.10.24 |
[War_Game : WebGoat] 0. 개요 및 설치 (0) | 2014.09.22 |