Hackujeme pozvánkový systém OnePlus

Teraz čítate
Hackujeme pozvánkový systém OnePlus

Pozvánkový systém spoločnosti OnePlus má veľa priaznivcov aj odporcov. Faktom ale je, že má aj svoje muchy po technickej stránke. Prvý, čo si tieto muchy všimol a písal o tom na internete bol Jake Cooper. Po ňom sa na internete začalo objavovať veľa ďalších a jednoduchších návodov, ako na to. My vám jeden z nich stručne predstavíme.

Sleduj FónyzČíny.sk aj na FacebookuGoogle+ a Instagrame!

UPOZORNIE: Cieľom tohto článku nie je navádzať vás na nelegálnu činnosť, či upravovanie svojho umiestnenia na čakacej listine. Cieľom je len oboznámiť čitateľa o existujúcich bezpečnostných dierach, ktoré je potrebné opraviť. 

Ak chceme hľadať potenciálne slabiny, musíme sa najskôr oboznámiť s fungovaním pozvánkového systému. Všetko to začína vašou registráciou. Po potvrdení registrácie dostanete na váš email odkaz v tvare https://oneplus.net/invites?kid=XXXXXX, kde XXXXXX (kid) je váš osobný identifikátor, ktorý slúži aj v prípade odporúčania priateľa. Tento odkaz slúži na zobrazenie vašej pozície na čakacej listine.

Ashampoo_Snap_2015.08.08_00h19m19s_006_

V bielom rámiku sa nachádza nový odkaz v tvare https://oneplus.net/invites?kolid=XXXXXX, kde XXXXXX (kolid) je stále váš osobný identifikátor. Keď si niekto otvorí tento odkaz, web vyzerá navonok úplne rovnako ako ten, na ktorom ste začali. No vo vnútri to tak nie je. Nájdeme tam dva input tagy, no nič, čo by určovalo, čo sa s nimi stane po kliknutí na tlačidlo odoslať. To znamená, že musíme začať hľadať v JavaScripte.

Ashampoo_Snap_2015.08.04_21h43m35s_002_

S trochou šťastia nájdeme v zozname súbor feature-invite.js a v ňom je okolo riadku 100 funkcia, ktorá registruje nového používateľa. Teraz stačí pridať body zlomu a hľadať obsah premennej d krok za krokom. Výsledkom bude adresa v tvare https://…/….php?r=share/signup. Tento PHP skript chce prijať ešte 2 ďalšie parametre a to email a koid, po ich pridaní bude na email odoslaný email s odkazom, ktorý je potrebné potvrdiť.

Ashampoo_Snap_2015.08.08_01h16m39s_012_

Druhá možnosť, ako získať tento odkaz je sledovať komunikáciu so serverom, hlavne po stlačení tlačidla. Takto vieme dostať trochu zložitejší odkaz, ale s rovnakou funkciou. Tento odkaz https://…/….php?r=share/signup&success_jsonpCallback=success_jsonpCallback&email=&koid=XXXXXX&_=1438988687927 tiež obsahuje parametre email a koid, ale je zbytočne dlhý.

Toto bola tá teoretická časť. Teraz prichádza na scénu automatizácia, v podaní akéhokoľvek moderného programovacieho jazyka. Odporúčame Python, lebo všetko neskôr potrebné je už napísané a ľahko dostupné. Ako prvé chceme, aby náš program vedel vykonávať sám registráciu. V Pythone importujeme knižnicu urllib.request a keďže chceme viac registrácií za sebou, dáme to do cyklu, ktorý bude prebiehať v nami zadanom rozsahu, aby sme to vedeli pohodlne ovládať. Po odoslaní emailu nie je na škodu počkať pár sekúnd, než nám príde email s odkazom. Z toho dôvodu importujeme knižnicu time a počkáme 3 sekundy.

OnePlus Two môžete kúpiť v e-shopoch za cenu od (Zdroj: Heureka.sk)
Porovnať ceny >>

Teraz prichádza najťažšia časť. Potrebujeme rýchlo generovať emaily. Najrýchlejšie riešenie je, ak vlastníte doménu, tak s najväčšou pravdepodobnosťou vlastníte niečo ako doménový kôš. Do neho prichádza pošta, ktorú sa nepodarilo priradiť podľa mena pred @. Z toho dôvodu je možné vygenerovať hocijaký email a potvrdzovací odkaz vždy dostanete na rovnaké emailové konto. Na prečítanie emailu stačí použiť knižnicu poplib a otvoriť najnovší email.

Teraz máte veľký zhluk html značiek a potrebujete prvý odkaz. Na to je potrebné získať novú knižnicu, ktorú stiahnete zadaním pip install beautifulsoup4 do vašej konzoly Pythonu. Následne importujete BeautifulSoup z bs4 a necháte nájsť text medzi prvými <a></a> značkami. Ten znovu spostíte cez urllib.request a cyklus sa opakuje. Odporúčam počkať aj na doručenie potvrdzujúceho emailu….

Finálny kód má 25 riadkov a názvy knižníc sú platné pre Python 3 a vyššie.

Ashampoo_Snap_2015.08.08_01h43m23s_014_

Chceli sme vedieť postoj spoločnosti OnePlus a tak sme ich kontaktovali emailom aj s funkčným zdrojovým kódom programu. Ich odpoveď prišla prekvapivo rýchlo a už v budúcej aktualizácií sa môžeme dočkať viacerých obranných mechanizmov.

Aká je tvoja reakcia?
Milujem to
0%
Páči sa mi to
0%
Chcem to
0%
Mám to
0%
Nepáči sa mi to
0%
Neznášam to
0%
O autorovi
Juraj Vasek
Som študent Gymnázia Viliama Paulinyho - Tótha v Martine. Venujem sa výrobe programov a webových stránok. Vlastnil som mobily ako iNew V3, Doogee DG550 a UMI Zero, Elephone P9000 a veľa ďalších. Aktuálne používam Xiaomi Mi5. V prípade akýchkoľvek otázok sa ma nebojte kontaktovať na juraj@fontech.sk