[웹 해킹과 보안 실습] 실습 환경 구축 및 HTTP
2020. 3. 24. 18:281.1 실습 환경 구축
1) 웹 서버
웹 브라우저의 HTTP 요청을 받아 처리하는 컴퓨터 프로그램이나 그러한 컴퓨터 프로그램을 실행하는 컴퓨터
ex) Apache, IIS(Internet Information Server)
2) IIS 설치
설정 > 설정 검색 > windows 기능 켜기/끄기 > 인터넷 정보 서비스
클릭 후 확인 누르면 자동으로 설치됨
설치 후 윈도우 탐색기를 열어C\:Inetpub\wwwroot 폴더가 생성되었는지 확인
Inetpub는 IIS의 기본 경로이다.
웹 브라우저를 실행하여 주소창에 http://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/를 입력하여 로그인 화면 확인
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:) {응답에 대해 선호하는 언어) (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 |