Chapter 02 웹의 이해.

Slides:



Advertisements
Similar presentations
웹 서버 구축 숭의여대 인터넷정보과 최지영. 웹 ? 웹사이트 ? 웹서버 ? 웹서비스 ? IIS? 아파치 ?
Advertisements

팀 명 : 커 피 팀 원 : 정수현 외 4 명 ( 다른 학교분들 ). 목차목차 결과물 시현 및 설명 DB 설계 서비스 흐름도 개발 환경 개발 개요 개발 과정의 기술 개발 동기.
01 학습 내용 : 준비학습 : 인터넷 과 웹 01 장. 인터넷 이해하기 02 장. 홈페이지를 만들기 전에.
1. Section I. 웹 프로토콜과 로그의 이해 1. 웹 프로토콜 1.1 통신 절차 1.2 HTTP Request 1.3 HTTP Response 2. 웹 로그 2.1 W3C 유형 2.2 NCSA 포맷 2.3 로그 분석 2.
WordPress 란 ? ■ WordPress 개요 -PHP 기반으로 기본적으로 블로그 사이트를 제작하는데 이용됨 - 오픈소스이기 때문에 누구나 사용이 가능함 - 전세계 5000 만개 이상 구축되어 있으며 신규 구축되는 사이트의 ¼ 이 WordPress 로 구축되고 있음.
Python Socket/HTTP overmania. 목표  소켓을 이용하여 기본적인 서버 - 클라이언트 모델을 구현할 수 있다.  간단한 웹서버를 소켓을 이용하여 작성할 수 있다.
Copyright © 2006 by The McGraw-Hill Companies, Inc. All rights reserved. McGraw-Hill Technology Education Copyright © 2006 by The McGraw-Hill Companies,
HTTP (Hypertext Transfer Protocol)
박승제 웹 애플리케이션 기술 박승제
Chapter 02. 웹에 대한 이해. Chapter 02. 웹에 대한 이해 웹의 역사 HTTP 웹 애플리케이션 기술.
웹로그 분석의 필요성과 현업 활용방안 - 랭키닷컴 웹마케팅 세미나 –
Chapter 03. 웹 해킹의 기초. Chapter 03. 웹 해킹의 기초 해킹 기술의 진화 일반적인 웹 해킹의 절차 OWASP Top 10 취약점 WebGoat 설치.
제 22 장 HTTP 22.1 HTTP 트랜잭션 22.2 요청 메시지 22.3 응답 메시지 22.4 헤더 22.5 예제
Introduction to Django
Network Lab. Yong bae, Kim
정보활용 능력과정 경일대학교 컴퓨터공학과 김 현성
웹 해킹 기초와 실습.
Chapter 03 웹 해킹의 기초.
Python Bottle Web Framework
이번 시간에는... 지난 시간에는 모바일 응용 프로토콜의 첫번째 시간으로, 모바일에 사용되는 다양한 응용 프로토콜과 모바일 웹 서비스 응용 프로토콜로써 XML 및 SMIL 동기화 멀티미디어 통합 언어에 대해 알아보았습니다. 이번 시간에는 모바일 응용 프로토콜, 그 두번째.
1. JSP(Java Server Pages) 소개
Chapter 02. 시스템 보안 : 건강한 시스템이 챙겨야 할 기본
뇌를 자극하는 SQL Server 장. 서버 자동화.
Chapter 04. 웹 보안 : 웹, 그 무한한 가능성과 함께 성장한 해킹
Web Server와 DB 연동.
ASP를 이용한 SHOPPING MALL 만들기
동호회 구축 제안서 인터넷전문가그룹 4biz.
1장. JSP 및 Servlet을 활용한 동적 웹 프로그래밍 소개 제1장.
Web Servers (IIS & Apache)
1. JSP(Java Server Pages) 소개
웹과 PHP를 이해하고 APM 설치 방법을 알아보자!
1. WEB access log 형식 2. WEB access log 위치 3. WEB access log 분석
김승겸 한남대학교 컴퓨터공학과 인공지능 실험실
125. WAPPLES Policy Setting Guideline
1강 01장. 웹과 자바.
ASP 정 보 보 호 학 과 양 계 탁.
NTAS 소개 (Network Transaction Application Server)
REPORT DESIGNER5.0 FAQ.
AJAX 커머스아이 박준열.
인터넷 보안 정보 보안 개론 5장.
자격증 모의 테스트 시스템 담당 교수 : 이 상 문 교수님 팀명 : CSCLAB
웹서버와 설치에 필요한 것 WWW ( world wide web ) TCP/IP 프로토콜을 이용하는 클라이언트/서버 환경
정보보안 CH4 웹 보안.
Web Server Program 구현 - 네트워크 프로그래밍 - 박내갑 ( ) 김상언 ( )
04장 웹 보안: 웹, 그 무한한 가능성과 함께 성장한 해킹
웹 애플리케이션 로깅 및 오류 처리 기법 웹 애플리케이션 로깅의 필요성을 이해한다 로깅의 분류 및 구현 방안을 학습한다
JDBC (Java Database Connectivity)
9장 JSP페이지의 에러처리 이장에서 배울 내용 : JSP페이지에서 에러를 처리하는 방법에 대해 학습해본다. 에러페이지를 사용한 에러처리의 문제점을 살펴보고, 현재 JSP2.0에서 권장하는 에러 처리 형태인 에러코드별 에러처리를 하는 방법에 대해 학습한다.
Network Security WireShark를 활용한 프로토콜 분석 II.
~27 윤형기 Python 프로그래밍 (보충) ~27 윤형기
Web Basic 김영성 인천대 OneScore
1강. 웹프로그래밍 웹프로그래밍이란? JAVA웹 웹프로그램의 동작 필요한 학습 Lecturer Kim Myoung-Ho
Web Vulnerabilities 정보 보호 2008/05/31 Getroot.
웹 다이어리 완료보고서 이상제 정영석.
롯데면세점 BI 구축에서 SQL Server Reporting Services 적용 사례
SNS 로그인 API 연동 조휘제.
HTML CSS 자바스크립트 무작정 따라하기
NTAS 소개 (Network Transaction Application Server)
MAIL CLIENT 김창우 윤성훈 이경재.
2장. 홈페이지를 만들기 전에 홈페이지 제작 목적과 제작 과정 홈페이지 제작 관련 기술들 홈페이지 제작에 필요한 준비물
CH2. ASP.NET 페이지 분석 HTML ASP ASP.NET 의 차이점.
남아메리카 선교 김수정, 이하정 전희진, 장성경.
ASP 기초개념 ASP란? ActiveX 서버 컴포넌트.
제 17 장 MVC 모델과 구현 학기 인터넷비즈니스과 강 환수 교수.
뇌를 자극하는 Windows Server 장. 데이터베이스 서버.
Web Debug & Trace Bit 18th Choi Yong-Ho 1.
주요공지로 정할 글을 올립니다. 제목과 주소를 복사해둡니다
HTML 1강 웹의 개념 이해 홈페이지 제작교실 다음카페 – 아이시 - 이시형 -.
웹 스크래핑.
웹 프로그래밍 기술 요약 Yang-Sae Moon Department of Computer Science
Presentation transcript:

Chapter 02 웹의 이해

01 웹의 탄생 02 HTTP의 기본 개념 03 웹 애플리케이션 기술

웹의 탄생 배경에 대한 기본 지식을 갖춘다. 웹 서비스를 제공하기 위해 사용되는 주요 프로토콜을 학습한다. 웹 애플리케이션 기술을 학습한다.

1.1 웹의 탄생 월드와이드웹 인터넷에 연결된 컴퓨터들이 하이퍼텍스트 형식으로 표현된 다양한 정보를 효 과적으로 이용할 수 있도록 구성한 전 세계적인 시스템 간단히 웹이라고 부름.

1.1 웹의 탄생 웹의 탄생 1989년 3월 13일, 유럽입자물리연구소(CERN)에 근무하던 소프트웨어 공학자 팀 버너스 리가 과학자들 사이에 쉽게 정보를 주고받기 위한 목적으로 정보 관 리 제안서를 발표(최초의 인터넷 기반 하이퍼텍스트 프로젝트) 이후 1990년에 하이퍼텍스트 브라우저와 편집기가 개발되고 URL, HTTP, HTML이 차례대로 설계됨. 1991년 8월 팀 버너스 리는 월드와이드 웹의 개념을 포함한 사이트를 일반인에 게 최초로 공개하고, 로열티를 포기

1.1 웹의 탄생 초창기 웹 단순한 텍스트와 링크 위주 하이퍼텍스트 : 글자에 링크를 걸어놓고 클릭하면 다른 화면이 나타나는 것 하이퍼링크 : 한 페이지에서 다른 페이지의 문서로 쉽게 이동 웹 서핑, 웹 브라우징 : 하이퍼링크를 따라 이동하는 것

1.1 웹의 탄생 http://archive.org 접속 웹 사이트의 과거 기록을 저장해놓은 인터넷 아카이브(http://archive.org) 접속

1.1 웹의 탄생 Daum 사이트의 아카이브 기록 검색 주소 입력 부분에 ‘www.daum.net’을 입력하고 <GO> 클릭

1.1 웹의 탄생 특정 연도의 Daum 사이트 열람 화면의 상단 그래프에서 특정 연도를 선택한 뒤 하단 달력에 표시된 부분 클릭

2.1 Request HTTP(hypertext transfer protocol) 인터넷에서 가장 많이 사용하는 프로토콜(팀 버너스 리가 웹을 만들면서 개발) 문서 간의 상호 연결을 통해 다양한 텍스트, 그래픽, 애니메이션을 화면에 보여 주고 사운드를 재생

2.1 Request HTTP(hypertext transfer protocol) 0.9 버전의 HTTP는 서버에서 단순히 읽기 기능만 지원 현재 웹에서 주로 사용하는 HTTP는 1.0과 1.1 버전 HTTP 1.0 : 1996년 5월에 완성되었으며, 메소드는 GET, HEAD, POST 방식만 지원 HTTP 1.1 : 2001년에 공식 발표되어 메소드는 OPTIONS, GET, HEAD, POST, PUT, DELETE, TRACE, CONNECT 방식 지원

2.1 Request Request 첫 번째 줄: GET / HTTP /1.1 HTTP 전송 방법 : 웹 서버로부터 자료를 가져오는 기능을 하는 GET을 많이 사용 (GET 메소드는 별도의 메시지 보디를 필요로 하지 않음) 요청된 URL : 웹 서버에 있는 자료를 요청할 때 사용되는 경로 HTTP 버전 : 인터넷에서 가장 일반적으로 사용되는 HTTP 버전은 1.0과 1.1(대부 분의 브라우저는 초깃값으로 1.1 사용) GET / HTTP/1.1 Accept: text/html, application/xhtml+xml, */* Accept-Encoding: gzip, deflate Cookie: HSID=AaxlkKoV2snlEi6UQ; SSID=AAYVu_evC0Tiu3aVc; APISID=JEWp0eojRTLFtYKJ/ACgEWh_0mL8Li_-fl; SAPISID=kabRBO-uT0ebDcfc/A2byDX--FwN649tHw Host: www.google.comConnection: Keep-Alive Accept-Language: ko-KR User-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0)

2.1 Request 웹 해킹과 관련된 요소 서버가 클라이언트에 전송한 인자값에 추가 정보를 보낼 때 사용 URL 주소에 나타난 호스트명을 자세하게 나타내기 위해 사용 브라우저나 기타 클라이언트의 소프트웨어 정보를 보여줌. GET 방식은 요청 데이터에 대한 인수를 URL을 통해 웹 브라우저로 전송(링크 주소만 알아도 연결된 페이지의 내용 확인 가능) Cookie: HSID=AaxlkKoV2snlEi6UQ; SSID=AAYVu_evC0Tiu3aVc; APISID= JEWp0eojRTLFtYKJ/ACgEWh_0mL8Li_-fl; SAPISID=kabRBO-uT0ebDcfc/A2byDX--FwN649tHw Host: www.google.com User-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0) http://www.hanb.co.kr/edu/view_detail.html?hi_id=363

2.1 Request POST 일반적인 게시판에서의 GET 방식과 POST 방식의 사용 HTTP의 보디 영역에 소켓을 이용하여 데이터를 전송 URL을 통해 인수값을 전송하지 않기 때문에 다른 사람이 링크를 통해 해당 페 이지를 볼 수 없음. 보내려는 인자값이 URL을 통해 노출되지 않아 보안 측면에서 GET 방식보다 안전 일반적인 게시판에서의 GET 방식과 POST 방식의 사용 목록이나 글을 보는 화면에는 접근 자유도를 부여하기 위해 GET 방식 사용 글을 저장 · 수정 · 삭제하는 작업을 할 때는 보안을 위해 POST 방식 사용

2.1 Request POST 메소드의 예 POST / HTTP/1.0 Accept: */*X-CI: 126323033 X-AT: OVERNET X-GO: 1;KR;842;9530 X-DM: www.google.co.kr X-SP: 762 Host: dr1.webhancer.com Content-Length: 0 Pragma: no-cache Connection: Close

2.1 Request Request 패킷의 메소드 HEAD : 서버 쪽 데이터를 검색하고 요청하는 데 사용 OPTIONS : 자원에 대한 요구- 응답 관계에서 관련된 선택 사항에 대한 정보를 요청할 때 사용 PUT : 메시지에 포함되어 있는 데이터를 지정한 URI 장소에 지정된 이름으로 저장 DELETE : URI에 지정되어 있는 자원을 서버에서 지울 수 있게 함. TRACE : 요구 메시지의 최종 수신처까지 루프백 검사용으로 사용

2.2 Response Response 클라이언트가 보낸 Request의 응답 패킷으로 형식이 간단함. Response 패킷에 담긴 주요 내용은 서버에서 쓰이는 프로토콜 버전, HTTP 상 태 코드(200 OK) 등이며, 전달할 데이터의 형식, 데이터 길이 등과 같은 추가 정보가 포함되어 있음.

2.2 Response HTTP 상태 코드

2.2 Response HTTP 세부적인 상태 코드

2.2 Response HTTP 세부적인 상태 코드 설명 200 OK : 클라이언트의 요청이 성공했다는 것을 나타냄. 201 Created : 클라이언트의 PUT 요청이 성공적이라는 것을 나타냄. 301 Moved Permanently : 브라우저의 요청을 다른 URL로 항시 전달 302 Moved Temporarily : 브라우저의 요청을 임시 URL로 바꾸고 Location 헤더에 임시로 변경한 URL의 정보를 적음(클라이언트가 다음에 같은 요청을 하면 기존 URL로 돌아감). 304 Not Modified : 브라우저가 서버에 요청한 자료에 대해 서버는 클라이언트 내에 복사된 캐시를 사용하면 된다는 것을 의미 400 Bad Request : 클라이언트가 서버에 잘못된 요청을 했다는 것을 나타냄. 401 Unauthorized : 서버가 클라이언트의 요청에 대해 HTTP 인증 확인을 요구 403 Forbidden : 클라이언트의 요청에 대해 접근을 차단 404 Not Found : 클라이언트가 서버에 요청한 자료가 존재하지 않음 405 Method Not Allowed : 클라이언트가 요청에 이용한 메소드는 해당 URL에 지원이 불가능함. 413 Request Entity Too Large : 클라이언트가 요청한 보디가 서버에서 처리하기에는 너무 큼. 500 Internal Server Error : 서버가 클라이언트의 요청을 실행할 수 없을 때 500 상태 코드가 발생 (SQL 인젝션 취약점이 존재하는지 확인할 때 유용)

2.2 Response HTTP 1.0 문서에 몇 개의 그림이 있든 상관없이 텍스트가 저장된 HTML 문서를 먼저 전 송받은 후 연결을 끊고 다시 연결하여 그림을 전송받음.

2.2 Response HTTP 1.1 연결 요청이 계속 들어오면 HTML 문서를 받은 후 바로 그림 파일을 요청

2.2 Response

2.2 Response JRE 다운로드 및 설치 Burp Suite 다운로드 Burp Suite 사이트(http://portswigger.net)에서 Burp Suite 다운로드 Burp Suite를 내려받은 폴더에 노트패드로 Suite.bat 파일을 만들고 다음과 같 이 입력한 후 저장 java -jar –Xmx1024m burpsuite_free_v1.7.15.jar(파일 버전에 맞게 이름 수정)

2.2 Response Burp Suite 설정 웹 브라우저와 웹 서버 간의 HTTP 패킷을 보려면 Burp Suite의 [Proxy] 탭에서 <Intercept is off>를 클릭하여 <Intercept is on>으로 바꿈.

2.2 Response Burp Suite 설정 서버와 클라이언트 간에 전달되는 모든 패킷을 보려면 [Proxy]의 [Options] 탭 에서 ‘Intercept Client Requests’의 ‘Intercept requests~’와 ‘ Intercept Server Responses’의 ‘ Intercept responses~’에 모두 체크 표시가 되어있는지 확인

2.2 Response 프록시 설정 웹 브라우저의 [도구]-[인터넷 옵션] 선택 후 [인터넷 옵션] 대화상자에서 [연결] 탭을 선택하여 <LAN 설정> 클릭

2.2 Response 프록시 설정 [LAN 설정] 대화상자에서 프록시 서버에 체크 표시를 하고, 주소 항목에 ‘127.0.0.1’, 포트 항목에 ‘8080’을 입력한 후 <확인> 클릭

2.2 Response 패킷 확인 웹 브라우저를 이용하여 임의의 웹 사이트에 접속 패킷을 확인한 후 전송하려면 Burp Suite의 [Proxy]-[Intercept] 탭을 선택하면 나타나는 창에서 <Forward>를 클릭

3.1 서버 측 기능 서버 측 기능 웹 애플리케이션이 이용하는 서버 측 기능 초기의 웹 서버는 단순한 정적 페이지 제공 현재는 입력한 값에 따라 다양한 결과를 화면에 보여주는 동적 기능 제공 웹 애플리케이션이 이용하는 서버 측 기능 ASP, JSP, PHP, VBScript, 펄과 같은 서버 측 스크립트 언어 아파치, IIS, 넷스케이프 엔터프라이즈와 같은 웹 서버 Microsoft SQL Server, 오라클, 사이베이스, MySQL과 같은 데이터베이스

3.1 서버 측 기능 서버 측 스크립트 언어 웹 서버 클라이언트가 요청한 데이터를 서버 측에서 처리하여 원하는 결과를 돌려주기 위해 사용하는 언어 윈도우 계열 기반은 주로 ASP, 웹 애플리케이션 플랫폼에는 주로 JSP 사용 웹 서버 일반적으로 많이 사용하는 웹 서버는 아파치와 IIS

3.1 서버 측 기능 데이터베이스 데이터베이스 관리 시스템(DBMS) : 데이터베이스를 관리하는 소프트웨어 DBMS에는 오라클, DB2, Microsoft SQL Server, 사이베이스, MySQL 등이 있음. DBMS를 사용하면 데이터베이스를 만들고 데이터를 입력 · 변경 · 검색할 수 있음.

3.2 클라이언트 측 기능 HTML 1980년 유럽입자물리연구소(CERN)의 팀 버너스 리가 HTML의 원형인 인콰이 어를 제안 1991년 말 팀 버너스 리가 인터넷에서 문서를 ‘HTML 태그’라고 부르면서 시작 HTML은 2000년부터 국제표준(ISO/IEC 15445:2000)이 됨. 2010년 8월 HTML5 Working Draft가 공개 2014년 10월 28일 HTML5가 표준으로 확정

3.2 클라이언트 측 기능 자바스크립트 객체 기반의 스크립트 프로그래밍 언어 넷스케이프커뮤니케이션의 운영자인 브렌던 아이크가 모카라는 이름으로 처 음 개발 라이브스크립트(LiveScript)라는 이름을 거쳐 자바스크립트가 됨. 성능 문제로 인해 서버 측에서 처리하지 않는 부분을 클라이언트 측에서 처리 할 수 있도록 할 때 주로 사용