쿠키(Cookie) : key + value
- 서버가 클라이언트에게 쿠키를 발급하면, 클라이언트는 서버에 요청을 보낼 때마다 쿠키를 같이 전송함.
- 서버는 클라이언트의 요청에 포함된 쿠키를 확인해 클라이언트를 구분함.
쿠키(Cookie)의 용도
- 정보 기록 : 팝업 옵션 기록
ex) 팝업 창의 "다시 보지 않기", "7일 간 표시하지 않기" 등의 팝업 옵션을 쿠키가 기억하여 팝업 창 표시 여부를 판단함.
- 상태 정보 : 로그인 상태와 이용자 구별(클라이언트를 식별할 수 있는 값을 쿠키에 저장하여 사용함)
세션(Session)
- 쿠키에 인증 상태를 저장하지만 클라이언트가 인증 정보를 변조할 수 없게 하기 위해 세션을 사용
- 세션은 인증 정보를 서버에 저장하고 해당 데이터에 접근할 수 있는 키(유추할 수 없는 랜덤한 문자열)를 만들어 클라이언트에 전달하는 방식으로 작동
세션 하이재킹(Session Hijacking)
공격자가 이용자의 쿠키를 훔칠 수 있으면 세션에 해당하는 이용자의 인증 상태를 훔치는 것
드림핵 로그인 페이지 세션 하이재킹 예
드림핵 홈페이지에 로그인을 하면 [검사 - Application - Storage - cookies] 항목에 sessionid가 생성됨.
이 sessionid를 복사하고 마우스 우클릭을 하여 Delete키를 누르면 sessionid가 사라지고 로그인이 풀림.
다시 Name에 sessionid를 입력하고 Value에 복사한 sessionid 값을 넣어주면 로그인이 됨.
따라서 쿠키에 저장되어 있는 세션 정보를 탈취하면 서버에 저장된 이용자의 인증 정보 획득 가능.
'Webhacking > dreamhack - Wargame' 카테고리의 다른 글
dreamhack Wargame: xss-2 (0) | 2022.01.28 |
---|---|
dreamhack Wargame: xss-1 (0) | 2022.01.23 |
dreamhack Wargame: session-basic (0) | 2022.01.23 |
dreamhack Wargame: cookie (0) | 2022.01.15 |
dreamhack Wargame: devtools-sources (0) | 2022.01.15 |
댓글