상세 컨텐츠

본문 제목

[쿠키🍪] 서드파티쿠키, 공격유형(중간자공격, XSS, CSRF)

CS구멍/네트워크🕊

by :부셔져버린개발자 2025. 2. 14. 09:41

본문

Thrid-Party Cookie

- 도메인과 스키마가 다르면, 같은 사이트에서 오지 않은 것으로 간주하고 이를 타사 쿠키라고 한다. 

- 도메인과 스키마가 사용자가 현재 보고 있는 브라우저 주소창에 표시된 URL과 일치하면, 

쿠키는 페이지와 동일한 사이트에서 온 것으로 간주되며 

이를 First-Party Cookie 라고 한다.

 

Thrid Party Cookie 전송 예시

- 한 사이트의 링크를 클릭하여 다른 사이트로 이동하는 경우

- 페이지가 다른 사이트의 구성 요소를 임베드하는 경우 


중간자 공격

요청을 중간에서 가로채셔 변조하여 전달하는 공격

 

https://developer.mozilla.org/en-US/docs/Glossary/MitM

 

MitM - MDN Web Docs Glossary: Definitions of Web-related terms | MDN

A manipulator-in-the-middle attack (MitM) intercepts a communication between two systems. For example, a Wi-Fi router can be compromised.

developer.mozilla.org

 


Cross-Site scripting (XSS)

공격자가 웹사이트에 악성 클라이언트 측 코드를 삽입할 수 있는 보안 익스플로잇

 

 

Stored XSS Attacks

주입된 스크립트는 대상 서버에 영구적으로 저장된다.

그런 다음 피해자는 브라우저가 데이터 요청을 보낼 때 서버에서 이 악성 스크립트를 검색한다. 

 

Reflected XSS Attacks

사용자가 악성 링크를 클릭하거나, 특별히 제작된 양식을 제출하거나, 악성 사이트를 탐색하도록 속았을 때, 삽입된 코드는 취약한 웹사이트로 이동한다.

웹 서버는 삽입된 스크립트를 오류 메시지, 검색 결과 또는 요청의 일부로 서버로 전송된 데이터가 포함된 다른 응답과 같이 사용자의 브라우저로 다시 반영한다.

브라우저는 사용자가 이미 상호 작용한 "신뢰할 수 있는" 서버에서 응답이 온 것으로 가정하기 때문에 코드를 실행한다.

 

DOM - based XSS Attacks

페이로드는 원래 클라이언트 측 스크립트에서 사용하는 DOM 환경(피해자의 브라우저에서)을 수정한 결과로 실행된다.

즉, 페이지 자체는 변경되지 않지만 페이지에 포함된 클라이언트 측 코드는 DOM 환경에 대한 악의적인 수정으로 인해 예상치 못한 방식으로 실행된다.

 

 

 

https://developer.mozilla.org/en-US/docs/Web/Security/Types_of_attacks#cross-site_scripting_xss

 

Types of attacks - Security on the web | MDN

This article describes various types of security attacks and techniques to mitigate them.

developer.mozilla.org

 


세션 하이재킹

세션 하이재킹은 사용자가 인증된 세션을 공격자가 가로채서 악용하는 공격 기법이다. 사용자가 웹사이트에 로그인하면 서버는 세션 ID(쿠키에 저장)를 발급하여 사용자를 식별하는데, 공격자가 이 세션 ID를 탈취하면 사용자의 권한을 그대로 가질 수 있다.

 

세션 하이재킹 공격 방식

1. 세션 쿠키 탈취

- XSS를 이용하여 사용자의 브라우저에서 세션 쿠키를 가로챈다

- 네트워크 스니핑을 통해 HTTP 요청에서 세션 쿠키를 확보한다 

 

2. 세션 예측

- 서버가 발급하는 세션 ID가 예측 가능할 경우, 공격자가 유효한 세션 ID를 생성하여 로그인된 사용자로 위장한다 

 

3. MITM (중간자 공격)

- 네트워크 트래픽을 가로채서 세션 정보를 탈취한다 

 

방어 방법

- HTTPS 사용 : 네트워크 가로채기 방지

- HttpOnly 및 Secure 속성 적용 : 쿠키를 JavaScript에서 접근하지 못하도록하고 HTTPS에서만 전송되도록 설정한다 

- 세션 타임아웃 설정 : 일정 시간 동안 비활성 상태면 세션을 자동으로 종료한다

- IP 및 User-Agent 확인 : 세션을 생성할 때 IP와 User-Agent 값을 함께 저장하고, 세션 사용시 동일한지 확인한다 

 

https://developer.mozilla.org/en-US/docs/Web/Security/Types_of_attacks#session_hijacking

 

Types of attacks - Security on the web | MDN

This article describes various types of security attacks and techniques to mitigate them.

developer.mozilla.org

 


Cross-Site request forgery (CSRF)

공격자는 사용자의 브라우저가 사용자의 동의나 지식 없이 웹사이트 백엔드에 요청을 수행 한다. 

 

이미지 태그에 실제로 은행 서버에서 돈을 인출하라는 요청 태그를 넣는다.

누군가 은행 계좌에 로그인했고 쿠키가 여전히 유효하다면 이 이미지가 포함된 HTML 을 로드하자마자 돈을 이체하게 된다. 

 

이런 일이 일어나지 않도록 

GET은 멱등적으로 구성한다 (변경은 POST, PUT, ...)

CSRF 토큰은 서버에서 브라우저에 제공함으로서 이러한 작업을 수행할 수 없도록한다 

세션 쿠키는 SameStie 속성이 Strict로 설정된 짧은 수명을 가져야 한다.

CSRF 토큰과 SameStie 쿠키를 모두 배포해야 한다 

728x90

관련글 더보기