Hogyan feltörtem a Google hibakereső rendszerét 15 600 dollárért fejenként

Könnyű hibák kemény készpénzért

Hallottál már a Google Issue Trackerről? Valószínűleg nem, hacsak nem Google alkalmazott vagy fejlesztő, aki nemrégiben jelentett hibákat a Google eszközökben. És én sem, amíg észrevettem, hogy a sebezhetőségi jelentéseimet most úgy kezeltem, hogy a szokásos e-mail értesítések mellett új szálat nyitottam ott.

Így azonnal elkezdtem törni.

Szóval mi is ez a weboldal? A dokumentáció szerint az Issue Tracker (belső nevén Buganizer System) egy olyan eszköz, amelyet a Google házon belül használ a hibák és a funkciókérések nyomon követésére a termékfejlesztés során. A Google-n kívül elérhető külső nyilvános és partner felhasználók számára, akiknek együttműködniük kell a Google csapataival konkrét projektekben.

Más szóval, ha valakinek problémája van egy Google-termékkel, akkor az a problémakövetőbe kerül . Van értelme, igaz? Külső felhasználóként csak a jéghegy csúcsát láthatjuk: kis számú előre jóváhagyott kategória, és olyan kérdések, amelyekben valaki a Google-nál kifejezetten hozzáadott egy külső fiókot, például biztonsági rés jelentések . De mennyi információ rejlik a felszín alatt?

A legfrissebb nyilvános szálakhoz rendelt numerikus azonosítók figyelembevételével könnyen megbecsülhetjük, hogy ez az eszköz mennyire használja belsőleg. A Mountain View munkaidejében óránként körülbelül 2000–3000 szám nyílik, és csupán 0,1% -a nyilvános. Úgy tűnik, hogy egy adatszivárgás ebben a rendszerben elég nagy hatással lenne. Törjük meg!

1. kísérlet: Google alkalmazói fiók megszerzése

Az egyik első dolog, amit észrevettem a problémakövető felfedezése során, az a lehetőség volt, hogy részt vehetek a megbeszélésekben e-mailek küldésével egy speciális címre, amely így néz ki:

buganizer-system + componentID + issueID @ google.com

(amelyben a componentID egy kategóriát képviselő szám, és a issueID a szál egyedi azonosítója, amelyre válaszolsz)

Ez eszembe juttatta a Ticket Trick nevű közelmúltbeli megállapítást, amely lehetővé tette a hackerek számára, hogy behatoljanak a szervezetek csevegőrendszereibe egy ilyen típusú e-mail rendszer segítségével. Tekintettel arra, hogy ez egy @ google.com e-mail cím, megpróbáltam regisztrálni a Google Slack csapatába, és ezzel a megerősítő oldal nagyon ígéretesnek tűnt:

Jaj, soha nem jelent meg Slacktől egyetlen e-mail sem.

A következő legjobb dolog, amire csak gondolni tudtam, az volt, hogy megszereztem egy Google-fiókot @ google.com fő e-mail címmel, ami remélhetőleg némi extra jogosultságot jelentene a Buganizerben. Nem kellett volna engedélyeznie egy ilyen fiók regisztrálását a Google-n kívülről:

Találtam azonban egy módszert ennek a szűrőnek a megkerülésére: Ha bármilyen más hamis e-mail címmel regisztráltam, de nem sikerült megerősítenem a fiókot az e-mailben kapott linkre kattintva, akkor korlátozás nélkül megváltoztathattam az e-mail címemet. Ezzel a módszerrel én változott az e-mail egy új Google fiókot [email protected].

Röviddel ezután üzenetben kaptam a visszaigazoló e-mailt a megfelelő lapon:

Szép! Rákattintottam a megerősítő linkre, bejelentkeztem az Issue Trackerre, és…

Átirányítottam a vállalati bejelentkezési oldalra. És nem, a Google-fiókom hitelesítő adatai nem működtek ott. Dőzsölés.

Mindazonáltal ez a fiók rengeteg extra előnyt biztosított számomra az internet más helyein, többek között az a lehetőség, hogy túllendüljek (esetleg ingyen?), Így továbbra is biztonsági probléma volt, amely rengeteg kaput nyitott meg a rosszindulatú felhasználók előtt.

Elfogadva: 11 óra | Jutalom : 3 133,7 USD | Prioritás: P1

2. kísérlet: Értesítés a belső jegyekről

Egy másik Issue Tracker funkció, amely megragadta a figyelmemet, miközben megismerkedtem a kezelőfelülettel, az a lehetőség, hogy elemeket csillagozhat . A probléma megjelölése azt jelenti, hogy érdekli a megvitatott probléma, és e-mailes értesítéseket szeretne kapni, amikor valaki megjegyzést fűz hozzá.

Érdekesség, amit észrevettem ezzel a funkcióval kapcsolatban, az a hibák hiánya volt, amikor megpróbáltam olyan kérdésekben használni, amelyekhez nem férhettem hozzá. Úgy tűnt, hogy a hozzáférés-vezérlési szabályokat soha nem alkalmazták ezen a végponton, ezért bejelentkeztem a második fiókomba, és megpróbáltam csillaggal megjelölni a biztonsági rés jelentését a fő fiókomból azzal, hogy kicseréltem a kérelem azonosítóját. Ezután megláttam ezt az üzenetet, ami azt jelenti, hogy a művelet sikeres volt:

1 személy csillaggal jelölte meg ezt a kérdést.

Lehet olyan könnyű a nyílt Google sebezhetőségét kémlelni? Gyorsan megjegyzést fűztem a kérdéshez, hogy megtudjam, kapok-e értesítést a kitalált támadói fiókomról.

De megint egyetlen e-mail sem jelent meg.

Valamilyen oknál fogva, amelyre valóban nem emlékszem, úgy döntöttem, hogy tovább tesztelek egyet. Kaptam tehát egy nemrégiben kiadott azonosítót, és extrapoláltam néhány ezer azonosítót, amelyeknek egybe kell esniük az adatbázis legújabb kiadásaival. Ezután mindet megcsillagoztam.

Pár perc alatt a postaládám így nézett ki:

Az első gondolatom a postafiók kinyitásakor a „Jackpot!” Volt.

Közelebbről megvizsgálva azonban semmi különös nem történt ezekben a szálakban. Nyilvánvalóan csak a fordítással kapcsolatos beszélgetéseket tudtam lehallgatni, ahol az emberek arról beszélnének, hogy miként lehetne jobban átadni egy kifejezés jelentését különböző nyelveken.

Még azt is fontolgattam, hogy néhány órán keresztül nem jelentem be ezt, remélve, hogy megtalálom a módját a súlyosság fokozásának. Végül rájöttem, hogy a Google biztonsági csapata valószínűleg érdekelni fogja a lehetséges pivot módszereket és variánsokat, ezért elküldtem a részleteket.

Elfogadva: 5 óra | Jutalom: 5000 USD | Prioritás: P0

3. kísérlet: A játéknak vége

Amikor külső felhasználóként keresi fel a Kiadáskövetőt, a legtöbb funkciója megszűnik, így rendkívül korlátozott jogosultságokkal rendelkezik. Ha szeretné megtekinteni a Google alkalmazottainak minden érdekes dolgát, akkor keresse meg az API-végpontokat a JavaScript fájlokban. Ezen funkciók egy része teljesen le van tiltva, mások egyszerűen el vannak rejtve a felületen.

A rendszer ezen korlátozott verziójának megtervezésekor valaki elég kedves volt ahhoz, hogy hagyjon egy módszert, amellyel eltávolíthatjuk magunkat a CC-k listájáról, arra az esetre, ha elveszítenénk az érdeklődést egy probléma iránt, vagy nem akarunk többé e-mailt kapni róla. Ez úgy érhető el, hogy elküld egy ilyen POST kérést:

POST /action/issues/bulk_edit HTTP/1.1
{ "issueIds":[ 67111111, 67111112 ], "actions":[ { "fieldName":"ccs", "value":"[email protected]", "actionType":"REMOVE" } ]}

Itt azonban észrevettem néhány olyan hibát, amely óriási problémához vezetett:

  1. Helytelen hozzáférés-vezérlés: Nem volt egyértelmű ellenőrzés, hogy issueIdsaz adott művelet végrehajtása előtt az aktuális felhasználó valóban hozzáférett-e az itt meghatározott problémákhoz .
  2. Csendes hiba : Ha olyan e-mail címet adott meg, amely jelenleg nem szerepel a CC-k listájában, a végpont egy üzenetet küld vissza, amelyben azt állítja, hogy az e-mailt sikeresen eltávolították.
  3. A kérdés teljes részletei válaszként: Ha a művelet során nem történt hiba, a rendszer egy másik része feltételezte, hogy a felhasználónak megfelelő engedélyei vannak. Így az adott kérdésazonosító minden egyes részlete visszakerül a HTTP választörzsbe.

Most láthattam részleteket az adatbázis minden kérdéséről, a issueIdsfenti kérés pótlásával . Bingó!

Csak néhány egymást követő azonosítót próbáltam megnézni, majd egy nem kapcsolódó fiókból támadtam meg magam, hogy megerősítsem a probléma súlyosságát.

Igen, láthattam a sérülékenységi jelentések részleteit, a Buganizeren tárolt minden mással együtt.

Ennél is rosszabb, hogy egyetlen jegyben kiszűrhettem a több jegyre vonatkozó adatokat, így az összes belső tevékenység valós időben történő figyelemmel kísérése valószínűleg nem váltott volna ki korlátozási korlátokat.

Azonnal elküldtem a kihasználás részleteit a Google-nak, és biztonsági csapatuk egy órával később letiltotta az érintett végpontot. Lenyűgöző válaszidő!

Elfogadva: 1 óra | Jutalom: 7500 USD | Prioritás: P0

Amikor először kezdtem el keresni ezt az információszivárgást, feltételeztem, hogy ez a Google hibáinak Szent Grálja lesz, mert minden más hibáról információkat közöl (például a HackerOne minimum 10 000 dollárt fizet valami hasonlóért).

De miután megtaláltam, gyorsan rájöttem, hogy a hatás minimálisra csökken, mert az összes veszélyes sebezhetőség egyébként egy órán belül semlegesül.

Nagyon örülök az extra készpénznek, és várom, hogy hibákat találjak más Google-termékekben.