Cookie와 Session

hee·2025년 4월 7일

Web hacking

목록 보기
6/11

1. HTTP 프로토콜 특징

- Connectionless : 하나의 요청에 하나의 응답을 한 후 연결을 종료하는 것을 의미.
- Stateless : 통신이 끝난 후 상태 정보를 저장하지 않음

-> 이러한 특징을 갖는 HTTP에서 상태를 유지하기 위해 사용하는 것이 ```Cookie```임.
- Key와 Value로 이루어진 일종의 단위
- 클라이언트의 정보 기록과 상태 정보를 표현하는 용도로 사용
- 쿠키는 클라이언트의 브라우저에 저장되고 요청에 포함되는 정보임
- 따라서, 클라이언트는 쿠키 정보를 변조해 서버에 요청을 보낼 수 있음
- 만약, 서버가 별다른 검증 없이 쿠키를 통해 이용자의 인증 정보를 식별한다면 공격자가 사칭을 통해 정보 탈취 가능
  1. Session
    • Cookie 변조를 통해 문제가 발생하는 근본적인 원인은 클라이언트가 정보를 가지고 있다는 점에서 비롯됨
    • 따라서, 쿠키에 인증 상태를 저장하지만, 클라이언트가 인증 정보를 변조할 수 없게 하기 위해 세션을 사용함
    • 세션은 인증 정보를 서버에 저장하고, 해당 데이터에 접근할 수 있는 키를 만들어 클라이언트에게 전달함

쿠키는 클라이언트에 저장되기 떄문에 클라이언트는 저장된 쿠키를 조회/수정/추가 가능
클라이언트가 서버에 요청을 보낼 때 저장된 쿠키를 요청 헤더에 넣어서 전송함 따라서, 쿠키 헤더 변조 가능
쿠키 열람을 위해서는 크롬 콘솔 활용 가능 document.cookie
쿠키 열람을 위해서 크롬 응용 탭 Cookie 활용도 가능

  • 세션 하이재킹
    • 크롬 개발자 도구
      • application
      • cookies
      • seesionid
      • 이 세션 아이디만 알면 로그인 가능

0개의 댓글