UUID Insecurities

Ondersteun HackTricks

Basiese Inligting

Universally Unique Identifiers (UUIDs) is 128-bis getalle wat gebruik word om inligting uniek te identifiseer in rekenaarstelsels. UUIDs is noodsaaklik in toepassings waar unieke identifiseerders nodig is sonder sentrale koördinering. Hulle word algemeen gebruik as databasis sleutels en kan na verskeie elemente soos dokumente en sessies verwys.

UUIDs is ontwerp om uniek te wees en moeilik om te raai. Hulle is gestruktureer in 'n spesifieke formaat, verdeel in vyf groepe wat as 32 heksadesimale syfers voorgestel word. Daar is verskillende weergawes van UUIDs, elkeen wat verskillende doeleindes dien:

  • UUID v1 is tyd-gebaseerd, wat die tydstempel, klokvolgorde en node ID (MAC adres) insluit, maar dit kan moontlik stelselinligting blootstel.

  • UUID v2 is soortgelyk aan v1 maar sluit wysigings in vir plaaslike domeine (nie wyd gebruik nie).

  • UUID v3 en v5 genereer UUIDs met behulp van hash waardes van namespace en naam, met v3 wat MD5 gebruik en v5 wat SHA-1 gebruik.

  • UUID v4 word byna heeltemal ewekansig gegenereer, wat 'n hoë vlak van anonimiteit bied maar met 'n geringe risiko van duplikate.

Let daarop dat die weergawe en subweergawe van die UUID gewoonlik in dieselfde posisie binne die UUID verskyn. Byvoorbeeld in: 12345678 - abcd - 1a56 - a539 - 103755193864 xxxxxxxx - xxxx - Mxxx - Nxxx - xxxxxxxxxxxx

  • Die posisie van die M dui die UUID weergawe aan. In die voorbeeld hierbo, is dit UUID v1.

  • Die posisie van die N dui die UUID variasie aan.

Sandwich-aanval

Die "Sandwich Aanval" is 'n spesifieke tipe aanval wat die voorspelbaarheid van UUID v1 generasie in webtoepassings benut, veral in funksies soos wagwoordherstel. UUID v1 word gegenereer op grond van tyd, klokvolgorde, en die node se MAC adres, wat dit ietwat voorspelbaar kan maak as 'n aanvaller sommige van hierdie UUIDs wat naby in tyd gegenereer is, kan verkry.

Voorbeeld

Stel jou 'n webtoepassing voor wat UUID v1 gebruik om wagwoordherstel skakels te genereer. Hier is hoe 'n aanvaller dit kan benut om ongeoorloofde toegang te verkry:

  1. Beginopstelling:

  • Die aanvaller het beheer oor twee e-pos rekeninge: `attacker1@acme.com` en `attacker2@acme.com`.

  • Die teiken se e-pos rekening is `victim@acme.com`.

  1. Uitvoering:

  • Die aanvaller aktiveer 'n wagwoordherstel vir hul eerste rekening (`attacker1@acme.com`) en ontvang 'n wagwoordherstel skakel met 'n UUID, sê `99874128-7592-11e9-8201-bb2f15014a14`.

  • Onmiddellik daarna, aktiveer die aanvaller 'n wagwoordherstel vir die slagoffer se rekening (`victim@acme.com`) en dan vinnig vir die tweede aanvaller-beheerde rekening (`attacker2@acme.com`).

  • Die aanvaller ontvang 'n herstel skakel vir die tweede rekening met 'n UUID, sê `998796b4-7592-11e9-8201-bb2f15014a14`.

  1. Analise:

  • Die aanvaller het nou twee UUIDs wat naby in tyd gegenereer is (`99874128` en `998796b4`). Gegewe die opeenvolgende aard van tyd-gebaseerde UUIDs, sal die UUID vir die slagoffer se rekening waarskynlik tussen hierdie twee waardes val.

  1. Brute Force Aanval:

  • Die aanvaller gebruik 'n hulpmiddel om UUIDs tussen hierdie twee waardes te genereer en toets elke gegenereerde UUID deur te probeer om toegang te verkry tot die wagwoordherstel skakel (bv. `https://www.acme.com/reset/<generated-UUID>`).

  • As die webtoepassing nie voldoende koersbeperkings of blokkeerders vir sulke pogings het nie, kan die aanvaller vinnig al die moontlike UUIDs in die reeks toets.

  1. Toegang Verkry:

  • Sodra die korrekte UUID vir die slagoffer se wagwoordherstel skakel ontdek word, kan die aanvaller die slagoffer se wagwoord herstel en ongeoorloofde toegang tot hul rekening verkry.

Hulpmiddels

Verwysings

Ondersteun HackTricks

Last updated