hacktricks/pentesting-web/hacking-with-cookies/cookie-tossing.md

7.5 KiB

쿠키 토싱

htARTE (HackTricks AWS Red Team Expert)를 통해 AWS 해킹을 제로부터 전문가까지 배우세요 htARTE (HackTricks AWS Red Team Expert)!

HackTricks를 지원하는 다른 방법:

설명

공격자가 회사의 서브도메인 또는 도메인을 제어하거나 서브도메인에서 XSS를 찾을 수 있다면 이 공격을 수행할 수 있습니다.

쿠키 해킹 섹션에서 언급된 바와 같이 쿠키가 도메인에 설정되면(지정됨) 해당 도메인 및 서브도메인에서 사용됩니다.

{% hint style="danger" %} 따라서, 공격자는 도메인 및 서브도메인에 특정 쿠키를 설정할 수 있게 될 것이며 다음과 같이 수행할 수 있습니다. document.cookie="session=1234; Path=/app/login; domain=.example.com" {% endhint %}

이는 공격자가 다음을 수행할 수 있기 때문에 위험할 수 있습니다:

  • 피해자의 쿠키를 공격자의 계정으로 고정시키므로 사용자가 인지하지 못하면 공격자의 계정에서 작업을 수행하게 되며 공격자는 흥미로운 정보를 얻을 수 있습니다(플랫폼에서 사용자의 검색 기록을 확인하거나 피해자가 계정에 신용 카드를 설정할 수 있음을 확인...)
  • 로그인 후 쿠키가 변경되지 않는 경우, 공격자는 단순히 **쿠키를 고정화(session-fixation)**하여 피해자가 로그인하고 나서 해당 쿠키를 사용하여 피해자로 로그인할 수 있습니다.
  • 때로는 세션 쿠키가 변경되더라도, 공격자는 이전 쿠키를 사용하고 새로운 쿠키도 받을 수 있습니다.
  • 쿠키가 초기 값을 설정하는 경우(예: flask에서 쿠키가 세션의 CSRF 토큰을 설정할 수 있고 이 값은 피해자가 로그인한 후에도 유지될 수 있음), 공격자는 이 알려진 값을 설정하고 그것을 악용할 수 있습니다(이 시나리오에서 공격자는 사용자로 하여금 CSRF 요청을 수행하도록 만들 수 있습니다.).
  • 값 설정과 마찬가지로, 공격자는 서버에서 생성된 인증되지 않은 쿠키를 가져와서 그것에서 CSRF 토큰을 얻고 사용할 수 있습니다.

쿠키 순서

브라우저가 동일한 이름의 두 개의 쿠키를 받을 때 동일한 범위(도메인, 서브도메인 및 경로를 부분적으로 영향)에 영향을 미치는 경우, 브라우저는 두 쿠키의 값을 모두 요청에 보냅니다.

가장 구체적인 경로를 가진 쪽 또는 가장 오래된 쪽에 따라, 브라우저는 먼저 쿠키의 값을 설정한 다음 다른 쪽의 값을 설정합니다. Cookie: iduser=MoreSpecificAndOldestCookie; iduser=LessSpecific;

대부분의 웹사이트는 첫 번째 값만 사용합니다. 따라서, 공격자가 쿠키를 설정하려면 다른 쿠키가 설정되기 전에 설정하거나 더 구체적인 경로로 설정하는 것이 좋습니다.

{% hint style="warning" %} 또한, 보다 구체적인 경로에 쿠키를 설정하는 능력은 매우 흥미로울 수 있습니다. 이를 통해 악성 쿠키가 설정된 특정 경로를 제외한 곳에서 피해자가 자신의 쿠키로 작업하도록 만들 수 있습니다. {% endhint %}

보호 우회

이 공격에 대한 가능한 보호는 웹 서버가 동일한 이름의 두 개의 쿠키를 다른 값으로 수락하지 않도록 하는 것일 수 있습니다.

피해자에게 이미 쿠키가 제공된 후 공격자가 쿠키를 설정하는 시나리오를 우회하기 위해, 공격자는 **쿠키 오버플로우를 유발한 다음, 한 번 합법적인 쿠키가 삭제되면 악성 쿠키를 설정할 수 있습니다.

{% content-ref url="cookie-jar-overflow.md" %} cookie-jar-overflow.md {% endcontent-ref %}

또 다른 유용한 우회 방법은 쿠키 이름을 URL 인코딩하는 것일 수 있습니다. 일부 보호 기능은 요청에서 동일한 이름의 2개의 쿠키를 확인하고 서버가 쿠키의 이름을 디코딩할 수 있습니다.

쿠키 폭탄

쿠키 토싱 공격은 쿠키 폭탄 공격을 수행하는 데도 사용될 수 있습니다:

{% content-ref url="cookie-bomb.md" %} cookie-bomb.md {% endcontent-ref %}

방어수단

쿠키 이름에 접두사 __Host 사용

  • 쿠키 이름에 이 접두사가 있는 경우, 안전한 원본에서 보내진 Secure로 표시된 쿠키만 /로 설정된 경로 속성이 포함되지 않은 도메인 속성이 포함되지 않은 경우 Set-Cookie 지시문에서만 수락됩니다.
  • 이는 서브도메인이 쿠키를 최상위 도메인으로 강제하는 것을 방지합니다.

참고 자료

htARTE (HackTricks AWS Red Team Expert)를 통해 AWS 해킹을 제로부터 전문가까지 배우세요 htARTE (HackTricks AWS Red Team Expert)!

HackTricks를 지원하는 다른 방법: