mirror of
https://github.com/carlospolop/hacktricks
synced 2024-11-23 05:03:35 +00:00
5.6 KiB
5.6 KiB
UUID 보안 취약점
htARTE (HackTricks AWS Red Team 전문가)로부터 AWS 해킹을 처음부터 전문가까지 배우세요!
HackTricks를 지원하는 다른 방법:
- 회사가 HackTricks에 광고되길 원하거나 PDF 형식의 HackTricks를 다운로드하려면 구독 요금제를 확인하세요!
- 공식 PEASS & HackTricks 스왜그를 구매하세요
- The PEASS Family를 발견하세요, 당사의 독점 NFTs 컬렉션
- 💬 Discord 그룹에 가입하거나 텔레그램 그룹에 가입하거나 트위터 🐦 @carlospolopm를 팔로우하세요.
- 해킹 트릭을 공유하고 PR을 제출하여 HackTricks 및 HackTricks Cloud 깃허브 저장소를 팔로우하세요.
기본 정보
범용 고유 식별자(UUID)는 컴퓨터 시스템에서 정보를 고유하게 식별하는 데 사용되는 128비트 숫자입니다. UUID는 중앙 조정 없이 고유 식별자가 필요한 응용 프로그램에서 필수적입니다. 데이터베이스 키로 자주 사용되며 문서 및 세션과 같은 다양한 요소를 가리킬 수 있습니다.
UUID는 고유하고 추측하기 어렵도록 설계되었습니다. 특정 형식으로 구조화되어 있으며 32개의 16진수 숫자로 표시된 다섯 그룹으로 나뉩니다. UUID에는 각각 다른 목적을 가지는 다양한 버전이 있습니다:
- UUID v1은 시간 기반으로 타임스탬프, 클록 시퀀스 및 노드 ID(MAC 주소)를 통합하지만 시스템 정보 노출 가능성이 있습니다.
- UUID v2는 v1과 유사하지만 로컬 도메인을 위한 수정 사항이 포함되어 있습니다(거의 사용되지 않음).
- UUID v3 및 v5는 네임스페이스 및 이름의 해시 값에서 UUID를 생성하며, v3은 MD5를 사용하고 v5는 SHA-1을 사용합니다.
- UUID v4는 거의 완전히 무작위로 생성되어 높은 익명성을 제공하지만 약간의 중복 위험이 있습니다.
{% hint style="success" %}
UUID의 버전 및 하위 버전은 일반적으로 UUID 내에서 동일한 위치에 나타납니다. 예를 들어:
12345678 - abcd - 1a56 - a539 - 103755193864
xxxxxxxx - xxxx - Mxxx - Nxxx - xxxxxxxxxxxx
- M의 위치는 UUID 버전을 나타냅니다. 위의 예에서는 UUID v1입니다.
- N의 위치는 UUID 변형을 나타냅니다. {% endhint %}
샌드위치 공격
"샌드위치 공격"은 특정 유형의 공격으로, 특히 비밀번호 재설정과 같은 기능에서 UUID v1 생성의 예측 가능성을 악용합니다. UUID v1은 시간, 클록 시퀀스 및 노드의 MAC 주소를 기반으로 생성되므로, 공격자가 이러한 UUID 중 일부를 시간적으로 가까이 생성할 수 있다면 다소 예측 가능할 수 있습니다.
예시
UUID v1을 비밀번호 재설정 링크 생성에 사용하는 웹 애플리케이션을 상상해보세요. 공격자가 이를 악용하여 무단 액세스를 얻을 수 있습니다:
- 초기 설정:
- 공격자는 두 개의 이메일 계정을 제어합니다: `attacker1@acme.com` 및 `attacker2@acme.com`.
- 대상의 이메일 계정은 `victim@acme.com`입니다.
- 실행:
- 공격자는 첫 번째 계정(`attacker1@acme.com`)에 대한 비밀번호 재설정을 트리거하고 UUID가 포함된 비밀번호 재설정 링크를 받습니다. 예를 들어 `99874128-7592-11e9-8201-bb2f15014a14`.
- 즉시 이후에, 공격자는 피해자의 계정(`victim@acme.com`) 및 두 번째 공격자가 제어하는 계정(`attacker2@acme.com`)에 대한 비밀번호 재설정을 트리거합니다.
- 공격자는 두 번째 계정에 대한 재설정 링크를 받습니다. 예를 들어 `998796b4-7592-11e9-8201-bb2f15014a14`.
- 분석:
- 공격자는 시간적으로 가까이 생성된 두 개의 UUID(`99874128` 및 `998796b4`)를 가지고 있습니다. 시간 기반 UUID의 순차적 특성으로 인해 피해자의 계정을 위한 UUID는 이 두 값 사이에 있을 가능성이 높습니다.
- 무차별 대입 공격:
- 공격자는 이 두 값 사이의 UUID를 생성하는 도구를 사용하고 각 생성된 UUID를 테스트하여 비밀번호 재설정 링크에 액세스를 시도합니다(예: `https://www.acme.com/reset/<생성된-UUID>`).
- 웹 애플리케이션이 이러한 시도를 충분히 제한하거나 차단하지 않는 경우, 공격자는 범위 내의 모든 가능한 UUID를 빠르게 테스트할 수 있습니다.
- 액세스 획득:
- 피해자의 비밀번호 재설정 링크에 대한 올바른 UUID를 발견하면, 공격자는 피해자의 계정으로 비밀번호를 재설정하고 무단 액세스를 얻을 수 있습니다.
도구
- 샌드위치 공격을 자동으로 수행할 수 있는 도구: https://github.com/Lupin-Holmes/sandwich
- Burp Suite에서 이 유형의 UUID를 감지할 수 있는 확장 프로그램 UUID Detector.