드림핵 Cookie 문제

satoshichingu·2024년 11월 17일

해킹 문제 풀이

목록 보기
1/18

Cookie란?

쿠키는 웹사이트가 사용자의 브라우저에 저장하는 작은 데이터 조각으로, 주로 세션 유지, 사용자 맞춤 설정, 트래킹에 사용됩니다.

쿠키의 동작 원리
1. 서버에서 쿠키 설정

  • 서버가 HTTP 응답에 Set-Cookie 해더를 포함하여 브라우저에 쿠키를 저장시킴.
  1. 브라우저에 쿠키 저장
  • 브라우저는 쿠키를 로컬에 저장하고, 이후 같은 도메인으로 요청 시 쿠키를 자동으로 포함.
  1. 서버로 쿠키 전송
  • 서버는 요청에 포함된 쿠키를 읽어 사용자 식별ㄹ 또는 상태 유지에 활용

쿠키의 주요 속성
1. 이름/값: 저장되는 데이터의 키와 값.
2. 만료시간: Expires 또는 Max-Age로 설정하며, 설정하지 않으면 브라우저 종료 시 삭제(세션 쿠키).
3. 도메인/경로: 쿠키가 유효한 도메인 및 URL 경로.
4. Secure: HTTPS에서만 전송.
5. HttpOnly: JavaScript로 접근 불가, 보안 강화.

쿠키의 활용 사례
1. 세션 관리: 로그인 상태 유지, 장바구니 정보 저장
2. 사용자 맞춤화: 테마, 언어 설정 등
3. 트래킹: 사용자 행동 분석 및 광고 타겟팅.

보안 이슈 및 대책
1. XSS 공격: 악성 스크립트로 쿠키 탈취.

  • 대책: HttpOnly 설정.
  1. CSRF 공격: 사용자 쿠키로 악성 요청.
  • 대책: SameSite 설정 및 CSRF 토큰 사용
  1. 쿠키 탈취 : 네트워크 가로채기.
  • 대책: HTTPS 및 secure 설정

문제 설명: Cookie 인증 취약점
목표: admin 계정으로 로그인하여 플래그 획득.

소스 분석

서버 소스를 분석하여 사용자 정보 확인:

users = {
    'guest': 'guest',
    'admin': FLAG
}

guest 계정 정보는 ID와 비밀번호가 동일함.
guest 계정으로 로그인

guest 계정으로 로그인 후 브라우저에서 쿠키 값을 확인.

쿠키 값은 다음과 같음:
user=guest

쿠키 값 조작
쿠키 값에서 user=guest를 user=admin으로 변경.
변경 후 페이지를 새로고침(Refresh).

플래그 획득

0개의 댓글