7계층
사용자의 다양한 인터페이스를 담당, 가장 대표적인 서비스로는 웹 서비스가 있고 나머지 중요한 서비스로는 DNS, FTP, TELNET, SSH 등이 있다.
웹을 이루는 다양한 기술들
HTML CSS JavaScript (웹 표준, Client Side Script) ASP, JSP, PHP(Server Side Script, Server Program) 웹 서버(아파치, 톰캣, nginx) HTTP
7계층 프로토콜
HTTP 프로토콜
HTTP 요청 프로토콜
헤더(리퀘스트 라인)[요청 메소드] [공백] [요청 URI] [공백] HTTP/1.1 ex) GET / HTTP/1.1 요청 메소드 GET : 데이터를 요청할 때 사용, 바디를 사용하지 않는다. 데이터를 전달할 때 URI에 포함 POST : 데이터를 전달할 때 사용, 바디를 사용한다. 데이터를 전달할 때 바디에 포함 등등 URI인터넷 상에서 특정 자원(파일)을 나타내는 유일한 주소 scheme://host[:port][/path][?query] ex) ftp ://IP주소 :포트 /파일이름 http ://IP주소 :포트 /폴더이름/파일이름 도메인주소 헤더(옵션) Host: [서버 도메인 or 서버 IP] User-Agent 클라이언트의 프로그램에 대한 설명 Referer 어떤 페이지에서 현재 요청하는 페이지로 이동하는지 알려주는 정보 바디보낼 데이터
HTTP 응답 프로토콜
헤더(상태 라인)HTTP/1.1 [공백] [상태 코드] [공백] [상태 메시지] ex) HTTP/1.1 400 Bad Request 상태 코드 200 번대 : 정상적인 통신 완료 200 : OK 400 번대 : 클라이언트 잘못 403 : Forbidden, 클라이언트가 권한이 없는 파일에 접근할 때 발생 404 : Not Found, 서버에 없는 자원을 요청했을 때 발생 500 번대 : 서버 잘못 헤더(옵션) Server : 웹 서버 종류 Content-Type : 요청한 데이터의 타입 Content-Length : 요청한 데이터의 길이(바이트) 바디보낼 데이터
실습1 - URI 실습
자바 개발환경 설치 jdk-10.0.2_windows-x64_bin.exe
자바 개발환경 설정 환경변수 : 시스템의 환경과 관련된 값을 저장하는 변수 ex) PATH
변수란? 하나의 저장 공간에 값을 저장하는 것
환경변수 설정 내 PC 우클릭 -> 속성 -> 고급 시스템 설정 -> 고급 탭 -> 환경 변수 -> 시스템 변수에서 path 변수 찾기 -> 편집 -> 새로 만들기 -> C:\Program Files\Java\jdk-10.0.2\bin 입력 -> 확인 -> 확인 -> 확인
내 PC 우클릭 -> 속성 -> 고급 시스템 설정 -> 고급 탭 -> 환경 변수 -> 시스템 변수에서 새로 만들기 -> 변수 이름에 JAVA_HOME 변수 값에 C:\Program Files\Java\jdk-10.0.2 입력 -> 확인 -> 확인 -> 확인
톰캣 서버 다운 및 압축 해제(apache-tomcat-8.5.33.zip) D:\tomcat_8.5 에 압축 해제
D:\tomcat_8.5\webapps\ROOT 안의 모든 파일 삭제
index.html 파일을 메모장으로 생성
cmd 실행해서
d:
cd tomcat_8.5 cd bin startup.bat 톰캣 서버 실행(기본 포트로 8080포트 사용)
웹 브라우저를 이용해서 http://[본인 IP]:8080/index.html 입력
D:\tomcat_8.5\webapps\ROOT\ 밑에 abc 폴더 생성 abc 밑에 123, 456 폴더 각각 생성 123 밑에 a.html 생성 456 밑에 b.html 생성
실습2 - HTTP 프로토콜 작성 실습
cmd 실행 d: cd netcat-1.11 nc.exe www.nate.com 80 GET / HTTP/1.1 엔터 여러번 HTTP 응답 프로토콜 확인 (Server 헤더)
실습3 - HTTP 프로토콜 캡쳐 실습
와이어 샤크로 패킷 캡쳐 시작 인터넷 여기저기 돌아다니기 패킷 캡쳐 종료 필터 http 적용
실습4 - HTTP 프로토콜 수정 실습 준비
jdk 설치가 완료 된 시스템에서 진행
Burp Suite 설치 (burpsuite_community_windows-x64_v1_7_36.exe) HTTP 요청 프로토콜이 전송되기 전에 버프수트에서 해당 프로토콜을 Intercept해서 조회하거나 수정할 수 있고 HTTP 응답 프로토콜이 웹 서버로부터 클라이언트의 PC에 도착해서 웹 브라우저에 뜨기 전에 버프수트로 해당 프로토콜을 Intercept해서 조회하거 수정 가능
alcon Proxy 설치(크롬 확장 프로그램) https://chrome.google.com/webstore/detail/falcon-proxy/gchhimlnjdafdlkojbffdkogjhhkdepf chrome에 추가 클릭
Falcon Proxy 설정 크롬 브라우저 오른쪽 상단에 Falcon Proxy 버튼 클릭 -> Click here 클릭 -> name bypass는 그대로, Host 127.0.0.1 port 9090 입력 -> create 클릭 -> Falcon Proxy 버튼 클릭 -> 생성한 설정 체크 후 On
Burp Suite 설정 Proxy 탭 -> Options 탭 -> Proxy Listeners 설정에서 -> 127.0.0.1:8080 선택 후 Edit 클릭 -> Bind to port 9090으로 설정
설정 확인 버프수트에서 Proxy 탭 -> Intercept 탭 -> Intercept is On 되어있는 것 확인 -> 인터넷 사용했을 때 버프수트에 HTTP 프로토콜이 뜨면 성공
실습5 - HTTP 응답 프로토콜 수정 실습
HTML 페이지 수정 검색어, 로또 번호
JavaScript 수정 마우스 우클릭 해제
실습6 - HTTP 요청 프로토콜 수정 실습
581896 검색을 통해서 볼 수 있는 게시글 번호 582656 못 보는 게시글 번호
'네트워크 기초' 카테고리의 다른 글
10. NAT와 포트 포워딩 (0) | 2021.07.30 |
---|---|
09. 연결지향형 TCP 프로토콜 (0) | 2021.07.30 |
08. 비연결지향형 UDP 프로토콜 (0) | 2021.07.30 |
07. 컴퓨터의 프로그램끼리는 이렇게 데이터를 주고 받는다 (0) | 2021.07.30 |
06. 멀리 있는 컴퓨터끼리는 이렇게 데이터를 주고받는다 (0) | 2021.07.30 |