본문 바로가기
웹 해킹/웹 해킹 개념

[웹 해킹 입문] 1. 웹해킹 개요

by sonysame 2018. 1. 8.

웹해킹 입문 서적을 참고했습니다.


웹(www): 인터넷에 연결된 컴퓨터들을 통해 사람들이 정보를 공유할 수 있는 전 세계적인 정보공간


웹: 네트워크 기술의 한 분야로 지구상에서 가장 거대한 네트워크이다.

인터넷: TCP/IP라는 프로토콜을 사용하는 네트워크의 집합체, 웹은 그 안에서 이루어지는 서비스



이더넷(Ethernet): 랜(LAN)이라고 하며, 일반적으로 가정, 소규모 사업장에서 가장 많이 쓰이는 네트워크 기술

리피터(Repeater): 약한 신호를 좀 더 멀리 보내기 위한 중계기

허브(Hub): 컴퓨터들을 랜 환경에 접속시키는 네트워크 장비


초창기: 사용자 한 명이 자신의 컴퓨터만을 다루었다. 이때는 네트워크 개념이 없었다.

->네트워크 구성이 가능한 시절: 일부 컴퓨터들이 모여 이더넷(LAN)이라는 네트워크를 사용했다(이더넷은 통신거리가 100m에 불과하여 매우 폐쇄적) 이러한 단점을 극복하기 위해 리피터와 허브 등의 네트워크 장비가 등장했다.


랜에서는 기본적인 네트워크 공유와 양방향 통신이 가능하다. 하지만 거리 제약등의 문제점이 있었다. 

->라우터를 통한 WAN: 좀 더 먼거리의 랜과 묶을 수 있다.


->네트워크와 네트워크를 연결하는 인터 네트워크(인터넷) 등장




LAN(Local Area Network): 학교, 회사, 집에서 서로 연결된 네트워크 

1:1로 연결하는 것이 아니라 공유기를 이용해서 연결

이더넷이라는 프로토콜을 사용



이더넷: 컴퓨터 네트워크 기술 중 하나라로, 전 세계의 사무실이나 가정에서 일반적으로 사용되는 LAN에서 가장 많이 사용되는 기술 규격



http://channelofchaos.tistory.com/40


허브: physical layer만 다룬다. 어떤 input 전기 신호를 다른 포트에 똑같이 복사해 낸다.

8개의 포트를 가진 허브에서 하나의 input전기 신호가 발생하면 8개의 포트에서 input 전기 신호와 똑같은 전기 신호가 출력된다.

허브는 단순히 전기 신호를 복사하는 것 뿐!


스위치: data link layer도 다룬다. 허브는 단지 input electric signal을 복사했지만, 스위피에서는 해당 MAC주소를 갖는 곳에만 전기 신호를 발생시킨다. 스위치에서 한 프레임을 모두 버퍼에 담고 있다가 MAC을 확인하는 방식(Store and Forward)과 MAC 관련 헤더만 버퍼에 담고 있는 방식 (Cut-Through)2가지가 존재

MAC주소: 네트워크 세그먼트의 데이터 링크 계층에서 통신을 위한 네트워크 인터페이스에 할당된 고유 식별자, 네트워크 장비의 하드웨어에 연결된 48비트 식별자


라우터: IP가 담겨 있는 Network Layer에서 목적지 IP를 찾아보고 어떻게 가는게 효과적으로 빨리 데이터를 배달할 수 있는지를 탐색해서 다음 라우터로 data를 이동시키는 일을 한다.


공유기: 라우터+허브를 갖춘 소규모 가정용 기기




HTTP: HTML문서 기반의 프로토콜, HTML을 위한 네트워크의 약속

웹은 HTTP 중심으로 웹브라우저를 통해 서비스된다.

HTML(Hypertext Markup Language): 웹문서를 만들기 위한 언어

HTTP: 링크를 통해 다른 사리트의 HTML문서에 접근!


TCP/IP 계층의 역할

1. 응용계층 : 웹, 텔넷, FTP 등 특정 응용 서비스를 제공

2. 전송계층: 상위 응용 계층에 대해 두 호스트 간의 데이터 흐름을 제공

3. 네트워크계층: 송수신 간 전송 단위인 패킷의 이동 제어와 최적의 이동경로를 설정

4. 링크계층: 하드웨어 인터페이스 역할과 데이터 전송을 담당


HTTP는 응용계층에 속한다.

HTTP

-요청(Request), 응답(Response)을 통한 통신 구조

-항상 클라잉너트의 요청에 의해 통신 시작

-상태가 없는(Stateless)프로토콜(요청과 응답이 과거의 상태 내용을 모른다)->이 한계를 극복하고자 쿠키나 세션의 기술이 쓰인다.



HTTP 요청 메시지


시작줄(URI): GET /test/hello.html HTTP/1.1

header:  Host~

      User-Agent~

Accept~

Accept-Language

Accept-Encoding

Connection

Cache-Control


공백라인

body


HTTP 메서드

GET: 서버에 자원을 요청한다. 요청 내용이 보이고, 데이터는 4096바이트로 제한

HEAD: 본문(body)외의 헤더 정보만 얻는다.

POST: 서버에 데이터를 전송한다. GET과 달리 내용이 보이지 않는다.

PUT: 서버에 자원을 생성한다.

TRACE: 요청사항을 다시 얻는다. 

OPTIONS: 응답 가능한 메서드들을 요청한다

DELETE: 서버의 자원을 삭제한다.


PUT, DELETE, TRACE, OPTIONS: 보안상 치명적


Accept: text/html, application/xhtml+xml, application/xml ; q=0.9, */*; q=0.8

클라이언트 혹은 브라우저가 서버에게 자신이 받을 수 있는 데이터 종류나 언어등을 알리는 것

Cache-Control: max-age=0

웹은 매번 요청과 응답의 반복으로 인해 자원소모가 많아서 캐시 기능을 통해 기존 자원을 사용->캐시의 만료 시간을 지정





HTTP 응답 메시지

상태라인: HTTP/1.1 200 OK

header:  Date~

Server~

Content-Length

Keep-Alive

Connection

Content-Type

공백라인

body


1xx 일반적인 정보

2xx 정상 처리

3xx 리다이렉션

4xx 클라이언트 에러

5xx 서버 에러


Keep-Alive: timeout=5, max=100

만약 5초 이내에 클라이언트가 요청하면 서버는 연결을 끊지 않고 대기! 다만 그 요청 횟수는 100회까지 제한


'웹 해킹 > 웹 해킹 개념' 카테고리의 다른 글

[웹 해킹 입문] 6. WireShark  (0) 2018.01.16
[웹 해킹 입문] 5. 스캔  (0) 2018.01.16
[웹 해킹 입문] 4. LFI&RFI  (0) 2018.01.15
sqlmap  (0) 2018.01.15
[웹 해킹 입문] 3. SQL 인젝션  (6) 2018.01.08