Translated ['pentesting-web/hacking-with-cookies/cookie-tossing.md'] to

This commit is contained in:
Translator 2024-04-04 08:57:34 +00:00
parent 2d679e0545
commit f96ac49908

View file

@ -2,15 +2,15 @@
<details>
<summary><strong>htARTE (HackTricks AWS Red Team Expert)로부터 AWS 해킹을 제로부터 전문가까지 배우세요</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary><strong>htARTE (HackTricks AWS Red Team Expert)를 통해 AWS 해킹을 제로부터 전문가까지 배우세요</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
HackTricks를 지원하는 다른 방법:
* **회사가 HackTricks에 광고되길 원하거나** **PDF로 HackTricks 다운로드**하려면 [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)를 확인하세요!
* **회사가 HackTricks에 광고되길 원하거나** **HackTricks를 PDF로 다운로드**하려면 [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)를 확인하세요!
* [**공식 PEASS & HackTricks 스왜그**](https://peass.creator-spring.com)를 구매하세요
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)를 발견하세요, 당사의 독점 [**NFTs**](https://opensea.io/collection/the-peass-family) 컬렉션
* **💬 [Discord 그룹](https://discord.gg/hRep4RUj7f)** 또는 [**텔레그램 그룹**](https://t.me/peass)에 **가입**하거나 **트위터** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**를 팔로우**하세요.
* **HackTricks** 및 **HackTricks Cloud** github 저장소로 **PR 제출**하여 **해킹 트릭을 공유**하세요.
* **💬 [**Discord 그룹**](https://discord.gg/hRep4RUj7f)에 가입하거나 [**텔레그램 그룹**](https://t.me/peass)에 가입하거나 **트위터** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**를 팔로우하세요**.
* **해킹 트릭을 공유하려면 PR을 제출하여** [**HackTricks**](https://github.com/carlospolop/hacktricks) 및 [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github 저장소를 확인하세요.
</details>
@ -26,35 +26,35 @@ HackTricks를 지원하는 다른 방법:
이는 공격자가 다음을 수행할 수 있기 때문에 위험할 수 있습니다:
* **피해자의 쿠키를 공격자의 계정 고정**시키므로 사용자가 인지하지 못하면 **공격자의 계정에서 작업을 수행**하게 되며 공격자는 흥미로운 정보를 얻을 수 있습니다(플랫폼에서 사용자의 검색 기록을 확인하거나 피해자가 계정에 신용 카드를 설정할 수 있음).
* **쿠키가 로그인 후 변경되지 않는 경우**, 공격자는 단순히 **쿠키를 고정화(session-fixation)**할 수 있으며, 피해자가 로그인하고 나서 **해당 쿠키를 사용하여 피해자로 로그인**할 수 있습니다.
* 때로는 세션 쿠키가 변경되더라도, 공격자는 이전 쿠키를 사용하고 새로운 도 받을 수 있습니다.
* **쿠키가 초기 값을 설정하는 경우**(예: flask에서 **쿠키**가 세션의 **CSRF 토큰**을 **설정**할 수 있으며 이 값은 피해자가 로그인한 후에도 유지될 수 있음), **공격자는 이 알려진 값을 설정한 다음 그것을 악용**할 수 있습니다(이 시나리오에서 공격자는 CSRF 요청을 수행하도록 사용자에게 요청할 수 있음).
* **피해자의 쿠키를 공격자의 계정으로 고정**시키므로 사용자가 인지하지 못하면 **공격자의 계정에서 작업을 수행**하게 되며 공격자는 흥미로운 정보를 얻을 수 있습니다(플랫폼에서 사용자의 검색 기록을 확인하거나 피해자가 계정에 신용 카드를 설정할 수 있음을 확인...)
* **로그인 후 쿠키가 변경되지 않는 경우**, 공격자는 단순히 **쿠키를 고정화(session-fixation)**하여 피해자가 로그인하고 나서 **해당 쿠키를 사용하여 피해자로 로그인**할 수 있습니다.
* 때로는 세션 쿠키가 변경되더라도, 공격자는 이전 쿠키를 사용하고 새로운 쿠키도 받을 수 있습니다.
* **쿠키가 초기 값을 설정하는 경우**(예: flask에서 **쿠키**가 세션의 CSRF 토큰을 **설정**할 수 있고 이 값은 피해자가 로그인한 후에도 유지될 수 있음), **공격자는 이 알려진 값을 설정하고 그것을 악용**할 수 있습니다(이 시나리오에서 공격자는 사용자로 하여금 CSRF 요청을 수행하도록 만들 수 있습니다.).
* 값 설정과 마찬가지로, 공격자는 서버에서 생성된 인증되지 않은 쿠키를 가져와서 그것에서 CSRF 토큰을 얻고 사용할 수 있습니다.
### 쿠키 순서
브라우저가 동일한 이름의 두 개의 쿠키를 받을 때 **동일한 범위(도메인, 서브도메인 및 경로)에 부분적으로 영향을 미치는 경우**, 두 값이 모두 요청에 유효한 경우 **브라우저는 두 쿠키의 값을 모두 보냅니다**.
브라우저가 동일한 이름의 두 개의 쿠키를 받을 때 **동일한 범위**(도메인, 서브도메인 및 경로를 부분적으로 영향)에 영향을 미치는 경우, **브라우저는 두 쿠키의 값을 모두 요청에 보냅니다.**
가장 **구체적인 경로를 가진 쪽** 또는 **가장 오래된 쪽**이 누구인지에 따라, 브라우저는 **먼저 쿠키의 값을 설정**한 다음 다른 쪽의 값을 설정합니다. `Cookie: iduser=MoreSpecificAndOldestCookie; iduser=LessSpecific;`
가장 **구체적인 경로를 가진 쪽** 또는 **가장 오래된 쪽**에 따라, 브라우저는 **먼저 쿠키의 값을 설정**한 다음 다른 쪽의 값을 설정합니다. `Cookie: iduser=MoreSpecificAndOldestCookie; iduser=LessSpecific;`
대부분의 **웹사이트는 첫 번째 값만 사용**합니다. 따라서, 공격자가 쿠키를 설정하려면 다른 쿠키가 설정되기 전에 설정하거나 더 구체적인 경로로 설정하는 것이 좋습니다.
{% hint style="warning" %}
또한, **더 구체적인 경로에 쿠키를 설정**할 수 있는 능력은 매우 흥미로울 수 있습니다. 이를 통해 **악의적인 쿠키가 설정된 특정 경로를 제외한 곳에서 피해자가 자신의 쿠키로 작업하도록** 할 수 있습니다.
또한, **보다 구체적인 경로에 쿠키를 설정하는 능력**은 매우 흥미로울 수 있습니다. 이를 통해 **악성 쿠키가 설정된 특정 경로를 제외한 곳에서 피해자가 자신의 쿠키로 작업하도록 만들 수 있습니다**.
{% endhint %}
### 보호 우회
이 공격에 대한 가능한 보호는 **웹 서버가 두 개의 다른 값으로 동일한 이름의 두 개의 쿠키를 허용하지 않도록 하는 것**일 수 있습니다.
이 공격에 대한 가능한 보호는 **웹 서버가 동일한 이름의 두 개의 쿠키를 다른 값으로 수락하지 않도록 하는 것**일 수 있습니다.
피해자에게 이미 쿠키가 제공된 후 공격자가 쿠키를 설정하는 시나리오를 우회하기 위해, 공격자는 **쿠키 오버플로우를 유발**할 수 있고, 그 후 **합법적인 쿠키가 삭제된 후 악성 쿠키를 설정**할 수 있습니다.
피해자에게 이미 쿠키가 제공된 후 공격자가 쿠키를 설정하는 시나리오를 우회하기 위해, 공격자는 **쿠키 오버플로우를 유발한 다음, 한 번 **합법적인 쿠키가 삭제되면 악성 쿠키를 설정**할 수 있습니다.
{% content-ref url="cookie-jar-overflow.md" %}
[cookie-jar-overflow.md](cookie-jar-overflow.md)
{% endcontent-ref %}
또 다른 유용한 **우회** 방법은 **쿠키 이름을 URL 인코딩**하는 것일 수 있습니다. 일부 보호 기능은 요청에서 동일한 이름의 2개의 쿠키를 확인하고 서버가 쿠키의 이름을 디코딩할 수 있습니다.
또 다른 유용한 **우회** 방법은 **쿠키 이름을 URL 인코딩**하는 것일 수 있습니다. 일부 보호 기능은 요청에서 동일한 이름의 2개의 쿠키를 확인하고 서버가 쿠키의 이름을 디코딩할 수 있습니다.
### 쿠키 폭탄
@ -68,8 +68,8 @@ HackTricks를 지원하는 다른 방법:
#### **쿠키 이름에 접두사 `__Host` 사용**
* 쿠키 이름에 이 접두사가 있는 경우, **안전한 출처에서 보내진 Secure로 표시된 쿠키만 /로 설정된 경로 속성이 포함되어 있지 않은 경우에만 Set-Cookie 지시문에서 수락**됩니다.
* **이는 서브도메인이 쿠키를 최상위 도메인으로 강제하는 것을 방지**합니다.
* 쿠키 이름에 이 접두사가 있는 경우, **안전한 원본에서 보내진 Secure로 표시된 쿠키만 /로 설정된 경로 속성이 포함되지 않은 도메인 속성이 포함되지 않은 경우 Set-Cookie 지시문에서만 수락**됩니다.
* **이는 서브도메인이 쿠키를 최상위 도메인으로 강제하는 것을 방지**합니다.
### 참고 자료
@ -80,14 +80,14 @@ HackTricks를 지원하는 다른 방법:
<details>
<summary><strong>htARTE (HackTricks AWS Red Team Expert)로부터 AWS 해킹을 제로부터 전문가까지 배우세요</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary><strong>htARTE (HackTricks AWS Red Team Expert)를 통해 AWS 해킹을 제로부터 전문가까지 배우세요</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
HackTricks를 지원하는 다른 방법:
* **회사가 HackTricks에 광고되길 원하거나** **PDF로 HackTricks 다운로드**하려면 [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)를 확인하세요!
* **회사가 HackTricks에 광고되길 원하거나** **HackTricks를 PDF로 다운로드**하려면 [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)를 확인하세요!
* [**공식 PEASS & HackTricks 스왜그**](https://peass.creator-spring.com)를 구매하세요
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)를 발견하세요, 당사의 독점 [**NFTs**](https://opensea.io/collection/the-peass-family) 컬렉션
* **💬 [Discord 그룹](https://discord.gg/hRep4RUj7f)** 또는 [**텔레그램 그룹**](https://t.me/peass)에 **가입**하거나 **트위터** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**를 팔로우**하세요.
* **HackTricks** 및 **HackTricks Cloud** github 저장소로 **PR 제출**하여 **해킹 트릭을 공유**하세요.
* **💬 [**Discord 그룹**](https://discord.gg/hRep4RUj7f)에 가입하거나 [**텔레그램 그룹**](https://t.me/peass)에 가입하거나 **트위터** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**를 팔로우하세요**.
* **해킹 트릭을 공유하려면 PR을 제출하여** [**HackTricks**](https://github.com/carlospolop/hacktricks) 및 [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github 저장소를 확인하세요.
</details>