Web Hacking/Study

Cookie & Seesion

박연준 2023. 6. 26. 02:03

쿠키(Cookie)

  • Connectionless, Stateless 특성을 갖는 HTTP에서 상태를 유지하기 위해 쿠키가 탄생했다.
  • Key와 Value로 이뤄진 일종의 단위로, 서버가 클라이언트에게 쿠키를 발급하면, 클라이언트는 서버에 요청을 보낼 때마다 쿠키를 같이 전송한다.
  • 서버는 클라이언트의 요청에 포함된 쿠키를 확인해 클라이언트를 구분할 수 있다.

용도

 일반적으로 쿠키는 클라이언트의 정보 기록과 상태 정보를 표현하는 용도로 사용한다.

정보 기록

웹 서버는 각 클라이언트의 팝업 옵션을 기억하기 위해 쿠키에 해당 정보를 기록하고, 쿠키를 통해 팝업 창 표시 여부를 판단한다.

 

쿠키는 서버와 통신할 때마다 전송되기 때문에 쿠키가 필요 없는 요청을 보낼 때 리소스 낭비가 발생할 수 있다.

 

최근에는 이러한 단점을 보완하기 위해 Modern Storage APIs를 통해 데이터를 저장하는 방식을 권장하고 있다.

 

상태 정보

웹 서버에서는 수많은 클라이언트의 로그인 상태와 이용자를 구별해야 하는데, 이때 클라이언트를 식별할 수 있는 값을 쿠키에 저장해 사용한다.

 

쿠키 변조

악의적인 클라이언트는 쿠키 정보를 변조해 서버에 요청을 보낼 수 있다. 만약 서버가 별다른 검증 없이 쿠키를 통해 이용자의 인증 정보를 식별한다면 공격자가 타 이용자를 사칭해 정보를 탈취할 수 있다.

 

세션(Seesion)

  • 쿠키에 인증 상태를 저장하지만 클라이언트가 인증 정보를 변조할 수 없게 하기 위해 세션(Seesion)을 사용한다.
  • 인증 정보를 서버에 저장하고 해당 데이터에 접근할 수 있는 키를 만들어 클라이언트에 전달하는 방식으로 작동한다.
  • 해당 키를 일반적으로 Seesion ID라고 한다.
  • 브라우저는 해당 키를 쿠키에 저장하고 이후에 HTTP 요청을 보낼 때 사용한다.
  • 서버는 요청에 포함된 키에 해당하는 데이터를 가져와 인증 상태를 확인한다.

세션과 쿠키의 차이

쿠키는 데이터 자체를 이용자가 저장하며, 세션은 서버가 저장한다는 핵심적인 차이가 있다.

 

세션 하이재킹(Seesion Hijacking)

공격자가 이용자의 쿠키를 훔칠 수 있으면 세션에 해당하는 이용자의 인증 상태를 훔칠 수 있는데, 이를 세션 하이재킹(Seesion Hijacking)이라고 한다.

 

'Web Hacking > Study' 카테고리의 다른 글

XSS CSRF SSRF 차이  (0) 2023.06.26
Cross Site Scripting(XSS) 개념 정리  (0) 2023.06.26
Burp Suite Option(3)  (0) 2023.06.26
Burp Suite Option(2)  (0) 2023.06.26
Burp Suite Option(1)  (0) 2023.06.26