본문 바로가기

Webhacking/개념

[Web] Dreamhack STAGE 1 ~ 3

https://dreamhack.io/lecture/roadmaps/1

 

Web Hacking

웹 해킹을 공부하기 위한 로드맵입니다.

dreamhack.io


Stage 1. Web Hacking Introduction

 

Stage 2. Background – Web

 

<HTTP>

 : 서버와 클라이언트의 데이터 교환을 요청과 응답 형식으로 정의한 프로토콜

 : 클라이언트가 서버에게 요청하면 서버가 응답하는 것이 기본 메커니즘

 : HTTP 서비스 포트 : TCP/80, TCP/8080

 - HTTP 헤드 : 시작 줄 + 헤더(필드+값/HTTP 메시지 또는 바디의 속성) + CRLF

 - HTTP 바디 : 헤드의 끝을 나타내는 CRLF 뒤의 모든 줄 / 클라이언트나 서버에게 전송하려는 데이터

 

<HTTP 요청>

: 서버에게 특정 동작을 요구하는 메시지

=> 시작 줄 : 메소드 + 요청 URI + HTTP 버전

   - 메소드 : URI가 가리키는 리소스를 대상으로 서버가 수행하길 바라는 동작

     -> GET : 리소스를 가져오라는 메소드

     -> POST : 리소스로 데이터를 모내라는 메소드 (전송할 데이터는 보통 HTTP 바디에 포함됨)

   - 요청 URI : 메소드의 대상

   - HTTP 버전 : 클라이언트가 사용하는 HTTP 프로토콜의 버전

 

<HTTP 응답>

 : HTTP 요청에 대한 결과를 반환하는 메시지

 : 요청을 수행했는지, 하지 않았는지, 안 했다면 이유는 무엇인지와 같은 상태 정보(status), 그리고 클라이언트에게 전송할 리소스가 응답에 포함됨

 => 시작줄 : HTTP 버전, 상태코드(status code) + 처리 사유(reason phrase)

   - HTTP 버전 : 서버에서 사용하는 HTTP 프로토콜의 버전

   - 상태코드 : 요청에 대한 처리 결과 (세 자릿수)

      -> 1XX ; 요청을 제대로 받았고, 처리가 진행 중

      -> 2XX : 요청이 제대로 처리됨 / 200: 성공

      -> 3XX: 요청을 처리하려면, 클라이언트가 추가 동작을 취해야 함 / 302 : 다른 URL로 갈 것

      -> 4XX: 클라이언트가 잘못된 요청을 보내어 처리에 실패 / 400: 요청이 문법에 맞지 않음, 403 : 클라이언트가 리소스에 요청할 권한이 없음, 404 : 리소스가 없음

      -> 5XX: 클라이언트의 요청은 유효하지만, 서버에 에러가 발생하여 처리에 실패 / 500 : 요청을 처리하다가 에러 발생, 503 : 서버가 과부하로 인해 요청을 처리할 수 없음

   - 처리 사유 : 상태 코드가 발생한 이유를 짧게 기술

 

<HTTPS>

 : HTTP의 응답과 요청은 평문으로 전달

 : HTTPS는 TLS 프로토콜을 도입하여 서버와 클라이언트 사이에 오가는 모든 HTTP 메시지를 암호화함

 

Stage 3. Cookie & Session

 

<Cookie>

 -> HTTP 프로토콜의 특징 : Connectionless:하나의 요청에 하나의 응답을 한 후 연결을 종료하는 것 / Stateless:통신이 끝난 후 상태 정보를 저장하지 않는 것

   => HTTP의 상태를 유지하기 위해 쿠키 탄생

 - 쿠키 = KEY + VALUE

 - 서버가 클라이언트에게 쿠키를 발급하면, 클라이언트는 서버에 요청을 보낼 때마다 쿠키를 같이 전송 / 서버는 클라이언트의 요청에 포함된 쿠키를 확인해 클라이언트 구분

 

<Session>

 -> 쿠키에 인증 상태를 저장하지만 클라이언트가 인증 정보를 변조할 수 없게 하기 위해 세션 사용

 - 인증 정보를 서버에 저장하고 해당 데이터에 접근할 수 있는 키(유추할 수 있는 랜덤한 문자열)를 만들어 클라이언트에 전달하는 방식으로 작동 / 키를 일반적으로 session id라고 함

 - 브라우저는 해당 키를 쿠키에 저장하고 이후에 HTTP 요청을 보낼 때 사용

 - 서버는 요청에 포함된 키에 해당하는 데이터를 가져와 인증 상태를 확인함

'Webhacking > 개념' 카테고리의 다른 글

[Web] Dreamhack STAGE 8  (0) 2022.08.27
[Web] Dreamhack STAGE 7  (0) 2022.08.27
[Web] Dreamhack STAGE 6  (0) 2022.08.27
[Web] Dreamhack STAGE 5  (0) 2022.08.26
[Web] Dreamhack STAGE 4  (0) 2022.08.25