Information Security

[DreamHack] STAGE3 - Cookie & Session 본문

INTERLUDE/Web Hacking

[DreamHack] STAGE3 - Cookie & Session

sohexz 2022. 1. 23. 19:36

쿠키

클라이언트의 IP 주소와 User-Agent는 매번 변경될 수 있는 고유하지 않은 정보

Connectionless, Stateless 특성을 갖는 HTTP에서 상태를 유지하기 위해 만들어짐

클라이언트의 정보 기록과 상태 정보를 표현하는 용도로 사용

Key와 Value로 이뤄진 일종의 단위

서버가 클라이언트에게 쿠키를 발급하면, 클라이언트는 서버에 요청을 보낼 때마다 쿠키를 같이 전송한다

서버는 클라이언트의 요청에 포함된 쿠키를 확인해 클라이언트를 구분할 수 있다

 

쿠키 변조

쿠키는 클라이언트의 브라우저에 저장되고 요청에 포함되는 정보이다

따라서, 악의적인 클라이언트는 쿠키 정보를 변조해 서버에 요청을 보낼 수 있다

만약 서버가 별다른 검증 없이 쿠키를 통해 이용자의 인증 정보를 식별한다면 공격자가 타 이용자를 사칭해 정보를 탈취할 수 있다

 

세션

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

클라이언트가 인증 정보를 변조할 수 없게 하기 위해 사용됨

 

구분)

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

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

->쿠키는 데이터 자체를 이용자가 저장, 세션은 서버가 저장

 

쿠키 적용법

쿠키는 클라이언트에 저장되기 때문에 클라이언트는 저장된 쿠키를 조회, 수정, 추가할 수 있다

클라이언트가 서버에 요청을 보낼 때 저장된 쿠키를 요청 헤더에 넣어 전송하기 때문에 이용자가 요청을 보낼 때 쿠키 헤더를 변조할 수 있다

쿠키를 설정할 때에는 만료 시간을 지정할 수 있고, 만료 시간 이후에는 클라이언트에서 쿠키가 삭제된다

쿠키의 만료는 클라이언트(브라우저)에서 관리된다

쿠키는 서버와 클라이언트 둘 다 설정할 수 있다

 

 

Console 탭을 누르고 document.cookie를 입력하면 쿠키 정보를 확인할 수 있다

 

세션 하이재킹 (Session Hijacking)

타 이용자의 쿠키를 훔쳐 인증 정보를 획득하는 공격

 

  1. 드림핵 로그인 페이지에서 우클릭 후 검사를 클릭하고 Network 탭을 누릅니다. Preserve log를 체크하고 로그인을 하면 로그인 성공 시 응답을 볼 수 있습니다. 응답을 살펴보면, 서버에서 set-cookie 헤더를 통해 브라우저의 쿠키에 세션 정보를 저장하는 것을 볼 수 있습니다.
  2. 크롬 검사에서 Application을 누르고 Cookies 목록 안의 https://dreamhack.io 를 누르면 서버의 set-cookie 헤더를 통해 설정된 쿠키를 확인할 수 있습니다.
  3. sessionid 헤더의 값을 메모장에 복사합니다. 이후 사진과 같이 sessionid 헤더의 값을 우클릭한 후 Delete를 클릭하면 브라우저의 쿠키에 저장된 세션 값이 삭제됩니다. 세션 값을 삭제하고 드림핵 페이지를 새로고침하면 로그인이 풀려있는 것을 확인할 수 있습니다.
  4. 쿠키의 빈 칸을 더블 클릭해 sessionid 헤더를 추가하고, 이전에 복사한 세션 값을 입력하면 브라우저의 쿠키에 세션 값이 설정됩니다. 세션 값을 설정하고 드림핵 페이지를 새로고침하면 로그인이 되는 것을 확인할 수 있습니다.

 

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

[DreamHack] session-basic  (0) 2022.01.30
[DreamHack] cookie  (0) 2022.01.23
[DreamHack] devtools-sources  (0) 2022.01.17
[DreamHack] STAGE 2 - Background: Web Browser  (0) 2022.01.14
[DreamHack] STAGE 2 - Background : Web  (0) 2022.01.14