[웹 해킹과 보안 실습] 실습 환경 구축 및 HTTP

2020. 3. 24. 18:28

1.1 실습 환경 구축

 

 1) 웹 서버

      웹 브라우저의 HTTP 요청을 받아 처리하는 컴퓨터 프로그램이나 그러한 컴퓨터 프로그램을 실행하는 컴퓨터

      ex) Apache, IIS(Internet Information Server)

 

 2) IIS 설치

 IIS 설치하기

설정 > 설정 검색 > windows 기능 켜기/끄기 > 인터넷 정보 서비스 

 

클릭 후 확인 누르면 자동으로 설치됨

설치 후 윈도우 탐색기를 열어C\:Inetpub\wwwroot 폴더가 생성되었는지 확인

Inetpub는 IIS의 기본 경로이다. 

 

httl://localhost

웹 브라우저를 실행하여 주소창에 http://localhost라고 입력한후, 웹 서버가 정상적으로 실행되고 있는지 확인

 

index.html 작성
localhost 웹 브라우저 확인

테스트를 위해 index.html 파일을 작성해서 C\:Inetpub\wwwroot 폴더에 저장하고 localhost 페이지를 열어서 제대로 적용되었는지 확인. 다음과 같은 내용이 나온다면 잘 적용된 것을 알 수 있다.

 

3) IIS 설정 변경

제어판 > 프로그램 > 프로그램 및 기능 > Windows 기능 켜기/끄기 > 웹 관리도구 

다음 화면에 체크 된 목록들을 체크한 후 확인 버튼 클릭

인터넷 정보 서비스 세부 설정

IIS 관리자 > 사이트 > Default Web Site > 사이트 편집 > 바인딩 에서 기본포트 80을 선택 후 편집

IP 주소목록에서 사용할 IP를 선택

 

방화벽 예외 포트 설정

제어판 > 방화벽 > 고급설정 > 인바운드 규칙 > 새규칙

80포트에 대해서 예외 처리를 해야 외부에서 정상적으로 접근 가능.

 

여기까지 Windows 환경의 웹 서버인 IIS를 설치하고, 외부에서 접근 가능하도록 설정하였다.

 

 

1.2 데이터베이스 구축

 

1) 데이터 베이스

여러 사람들이 공유하여 사용하는 데이터의 집합. 자료를 효율적으로 검색하고 갱신하기 위해 중복을 없애고 구조화하여 저장함.

 

2) MS-SQL 설치

MS-SQL 설치함.

 

1.3 게시판 연동

board.zip 압축 해제 후 가상 디렉터리를 생성하여 웹 브라우저 확인

주소 창에 http://자신의IP/board/를 입력하여 로그인 화면 확인

http://자신의IP/board/

1.4 데이터베이스 만들기

 

1.5 SQL

1) 데이터베이스의 구성

열을 컬럼(column) 또는 필드(field)라고 하고 행을 로우(raw) 또는 레코드(record)라고 함.

2) 데이터베이스 생성과 삭제

생성 : CREATE DATABASE 데이터베이스_이름;

새로만든 데이터 베이스 사용 : USE 데이터베이스_이름;

데이터베이스 삭제: DROP DATABASE 데이터베이스_이름;

3) 테이블 생성과 삭제

생성 : CREATE TABLE 테이블_이름;

삭제 : DROP TABLE 테이블_이름;

4) INSERT;

INSERT 명령으로 레코드 추가 : INSERT INTO 테이블_이름

5) SELECT 

테이블에 어떤 데이터가 있는지 확인 : SELECT 필드명 from 테이블명 where 검색조건 order by 정렬방법;

6) DELETE

입력한 레코드 삭제 : DELETE from 테이블명 where 검색조건;

7) UPDATE

입력된 레코드 값 수정 : UPDATE 테이블명 set 필드명 where 검색조건;

 

 

2.1 URL

Uniform Resource Locator, 많은 정보 포함됨

항목 설명
프로토콜  http:// http라는 프로토콜을 사용하겠다는 뜻. FTP를 사용하고 싶다면 ftp://로 시작하면 됨
주소  search.naver.com 일반적으로 웹 주소라 불리는 도메인. 네임 서버에서 해당 도메인을 IP로 변환시켜 서버에 접속하도록 해줌
경로나 파일 search.naver

search.naver 파일을 읽어옴

피라미터 ?sm=tab_hty&where=nexearch&query==URL search.naver 파일에 전달되는 값. 변수 sm에 tab_query라는 값을 변수 where에 nexearch라는 값을, 변수 query에 URL이라는 값 전달

 

2.2 클라이언트와 서버

사이트 방문할 경우 PC는 클라이언트가 되고 요청하는 페이지를 보여주는 시스템을 웹 서버가 됨.

1) 요청

클라이언트가 웹 서버로부터 정보를 받고자 할 때 보내는 메시지. method, header, entity body의 세부분으로 구성

구성요소 세부내용
method (GET이나 POST 등)(경로 및마일명) (HTIP 프로토콜 버전)
header  

(Accept:) (응당 메시지에 대해 허용할 수 있는 미디어 증류) 

(Accept-Language:) {응답에 대해 선호하는 언어) 
(Cookie:) (클라이언트에서 가지고 있는 정보)

(User-Agent:) (응답 내용에 대해 응답할 수 있는 브라우저 증류)

(Host:) (응답올 요청한 호스트 )

(Proxy-Connection:) (프록시 연결을 사용힘) 

entity body POST 메소도를 사용하여 웰 서버에 요청 시 id니 password와 같은 전달할 값을 포함할 수 있음 

 

2) 응답

사용자에게 받은 요청을 서버가 처리하여 보내주는 메시지. response code, header, entity body의 세부분으로 구성

구성요소 세부내용
response code (프로토콜 버전)(상태 코드) 
header

(Date:) (응답 시간)

(Server:) {응답 서버 정보)

(Last_Modified:) (최근 응답 메이지 수징일)

(Etag:) (관련된 실체(entîty)의 태그)

(AccePt-Ranges:) (받을 수 있는 요청 범위의 형식)

(Content-Length:) {내용의 길이)

(Content-Type:) (내용의 형식)

(Via:)(요청에서 클라이언트와 서버, 통신 증간에 프로토콜과 수신자)

(Age:) (서버에서 생성된 페이지(정보)에 대한 예상 시간)

(Expires:) (내용이 만료되는 것으로 예상 시간)

(Connection:) (연결 형태)

entîty body 클라이언트가 요청한 페이지 내용과 같은 전달할 값 

 

2.3 웹 프록시 툴

프록시(proxy)는 인터넷에서 PC와 인터넷 사이에 중개 역할을 해주는 것이라 할 수 있음

IP를 변조하고자 할 때 프록시 서버를 사용하는 경우 많음. 클라이언트가 서버로 접속할 때 프록시 서버를 통하면 서버에서는 클라이언트 IP를 모르고 프록시 서버 IP만 알게 되기 떄문. 

프록시 동작 원리

 

참고 문헌: 보안 입문 - 웹 해킹과 침해사고 분석

'2020-1 스터디 > 3팀' 카테고리의 다른 글

[와이어샤크] 트래픽 캡처  (0) 2020.03.17
[3조 스터디 진행]  (0) 2020.03.09