Hlavní navigace

Jak jde (nejen) na Alza.cz nakoupit za cizí peníze [AKTUALIZACE]

 Autor: Isifa
Petr Soukup 24. 2. 2015

Stačí minimální znalosti a „můžete“ si pořídit notebook, aniž byste za něj platili. Rozhodně to není jen problém Alzy, naprostá většina e-shopů má stejnou slabinu.

  • 25.2. 13:00 doplněna reakce autora na opatření Alza.cz v závěru textu
  • 11:30 doplněna nezkrácená reakce Alza.cz v závěru textu

Disclaimer: Budu názorně předvádět krok za krokem, jak ukrást cizí účet. V žádném případě to ale neznamená, že byste postup měli opakovat, protože by to byl trestný čin – to, že někdo nechá otevřené hlavní dveře od domu, ještě neznamená, že si z něj můžete odnést televizi. V tomto postupu dělám simulaci na svém vlastním účtu, takže nikdo nepřišel k újmě.

Následující postup není žádná geniálně objevená bezpečnostní díra. Každý, kdo se jen trochu pohybuje v IT, ví, že to jde velmi snadno provést. Sám jsem si s tím hrál už před deseti lety, takže to rozhodně není nic nového. Ale přestože je to tak jednoduché a známé, tak si s tím evidentně nikdo neláme hlavu. Pojďme si proto ukázat, jak lze nakupovat zadarmo.

Text původně vyšel na blogu Souki.cz, Lupa jej přebírá se svolením autora. Požádali jsme o vyjádření i Alza.cz – e-shop slíbil, že svůj komentář dodá během dnešního dne, poté jej do textu doplníme.

Co je potřeba

Zvolíme ten úplně nejjednodušší postup – odchytneme si údaje o uživatelském účtu z wifi. K tomu potřebujeme:

  • notebook
  • aplikaci Wireshark
  • prohlížeč
  • židličku

Stačí se posadit poblíž pobočky Alzy, zapnout Wireshark a počkat, až si někdo na telefonu zkontroluje číslo objednávky před vyzvednutím. Alza nám to ještě dost usnadňuje, protože na pobočkách nabízí nezabezpečenou wifi. Kdyby byla zabezpečená, tak by to ale také nic neřešilo – jen by byl postup o pár bodů delší.


Autor: Petr Soukup

Každá wifi je veřejná

Víte, jak funguje wifi? Když chcete jít na web Alza.cz přes telefon, tak se tento požadavek pošle do všech směrů do vzdálenosti zhruba 100 metrů. Pokud v té vzdálenosti byla wifi krabička, tak požadavek zpracuje a odpověď pošle také do všech směrů do vzdálenosti zhruba 200 metrů. To znamená, že se stačí postavit někam poblíž a tuto komunikaci můžete bez obtíží zachytávat. (U zabezpečené wifi je to o trochu složitější, ale v principu prakticky stejné). Protože to není nic nového, existují na to už aplikace, které udělají všechnu těžkou práci za vás. Asi nejznámější je Wireshark.

Wireshark stačí zapnout, zvolit rozhraní (vaši wifi kartu), vybrat režim „monitor“ a spustit záznam. V tomto režimu bude zachytávat veškerou komunikaci se všemi wifi sítěmi, které jsou v dosahu.


Autor: Petr Soukup

Autor: Petr Soukup

Po zapnutí je okamžitě vidět, jak je živo. Stačí ale nastavit filtr a hned vidím požadavek na načtení hlavní strany Alza.cz.


Autor: Petr Soukup

Požadavek rozbalím, abych viděl hlavičky, a máme výherce:


Autor: Petr Soukup

Na obrázku je vyznačený řetězec, který nás celou dobu zajímal – je to session cookie, která identifikuje zákazníka.

HTTP je nebezpečné

Problémem HTTP protokolu je, že je bezstavový. Každý požadavek je zcela nezávislý na tom předchozím. Když se v e-shopu přihlásíte, tak to e-shop zpracuje, ale při přechodu na další stránku už zase nemá zdání, kdo jste. Řeší se to přes session cookie – e-shop vás při přihlášení ověří, vrátí vám cookie (ten dlouhý řetězec z obrázku) a prohlížeč ho bude posílat při každém dalším požadavku. Můžete si to představit třeba jako průkazku.

My jsme ale cookie zachytili, takže ji teď stačí předložit e-shopu a ten nemá šanci zjistit, že s ním najednou mluví někdo jiný. Můžeme mít dokonce i stejnou IP adresu jako skutečný zákazník. Stačí nám tedy otevřít si prohlížeč, jít na web Alza.cz a do adresního řádku napsat toto:

javascript:document.cookie='UIDX=TPq+CGELjpNieHkotP3YYCkXbk0gREm6aGLkx+aEgHg=; expires=Fri, 3 Aug 2030 20:47:11 UTC; path=/'

To je celé. Stačí znovu načíst stránku a jsem přihlášený na cizí účet (můžete to také zkusit a načte se vám můj testovací účet). Všimněte si, že jsem vůbec nepotřeboval odchytávat heslo. Takže kdyby Alza.cz hesla při přihlášení šifrovala (částečně to dělá), tak je to stejně úplně k ničemu.

Nakupujeme zadarmo

Máme cizí účet. Paráda! Co teď s ním? Asi nejzávažnějším bezpečnostním problémem je, že si Alza defaultně ukládá platební karty. Stačí tedy udělat objednávku s osobním odběrem, zvolit uloženou kartu a tradá – je nakoupeno. Žádné heslo, žádné trojčíslí z karty, žádné šifrování. Jediné omezení je limit platební karty.

Mimochodem právě proto v poslední době přidávají banky povinnost ověřit platbu kartou přes SMS – chybějící zabezpečení obchodu tak zachraňuje banka.


Autor: Petr Soukup

Nakupujeme z kreditu

Každý účet sice nemá uloženou kartu, ale to vychytralého zloděje nezastaví. Alza má kreditový systém. Je určený na dárkové poukazy a podobně, ale sbírá také například peníze z platebních terminálů. Při osobním odběru vám terminál vždy nabídne, jestli drobné chcete připsat na účet místo vrácení. Kredity jdou navíc převádět mezi účty. Kdyby někdo automatizoval vykrádání kreditů (nebylo by to nijak složité), tak by mohl postupně tyto drobné sbírat. Nikdo si nevšimne chybějících 50 Kč.


Autor: Petr Soukup

Zneužíváme informace

Platební karty nebo kredity nemusí být v každém e-shopu. Rozhodně to ale neznamená, že bez těchto funkcí není co zneužít. Po přihlášení do cizího účtu totiž získáváme spoustu informací – adresu, telefon, email, bankovní účet, historii objednávek. Z toho pak jdou odvodit další informace jako například profily na sociálních sítích a podobně.

Když někomu zatelefonujete, představíte se jako banka a budete chtít číslo karty, spousta lidí se nachytá. Vaše šance se ale dost výrazně zvýší, pokud budete přesně vědět, že dotyčný byl včera v 15:42 na pobočce, budete znát jeho login, číslo faktury atd.

Případně to lze vzít z druhé strany. Víte, že si dotyčný právě koupil novou plazmovou televizi, a víte, kde bydlí. V případě Alzy dokonce můžete zjistit, jaký model bezpečnostního systému si dříve koupil (dobře, to už by byla asi vážně velká klika). Zajímavé na tom je, že k takové televizi máte rovnou i fakturu a záruční list. Dokonce si můžete záruku i prodloužit :) Nebo ji vrátit Alze do 14ti dnů a dostat plnou cenu.

Nechci tu dávat více příkladů trestné činnosti, ale tyto informace můžou být cennější než uložená karta. Opravdu to nejde podceňovat.

Omezení

Výše popsaný postup má dvě velká omezení:

  1. oběť se musí připojit na wifi
  2. oběť si musí na telefonu otevřít web Alzy

Tím se samozřejmě znatelně snižují šance na úspěch a asi by nestačilo na židličce před pobočkou sedět pět minut. Obou omezení se lze ale poměrně snadno zbavit – telefon můžete donutit, aby wifi využil, aniž by to oběť věděla. Stačí jen drobná úprava postupu a zbavíte se nutnosti navštívení konkrétního webu. Případně místo sezení na židličce naprogramovat Raspberry Pi a jen ji strategicky umístit.

Vylepšenou verzi si ale nechám zase třeba na jindy. Chtěl jsem vám hlavně ukázat, jak strašně jednoduché je takto ukrást účet. A znovu opakuji, že to není problém specifický pro Alzu. Naprosto identický postup lze použít pro jakýkoliv e-shop, který nemá před adresou zelený zámeček.

Tento článek možná vypadá dlouze, ale praktická realizace je otázkou několika kliknutí.

Zabezpečujte!

Už jsem tu popisoval, že https je výrazně rychlejší, že je to investice pár korun a tentokrát, že je naprosto nutné. Už uvažujete o nasazení https? :)

P.S: Tento článek suším už skoro tři měsíce. Alza totiž v prosinci začala řešit https, tak jsem chtěl počkat na dokončení. Jenže Alza zřejmě úplně nepochopila podstatu problému – v uživatelském účtu používá https, ale kdekoliv jinde z něj naopak přesměrovává na http. Takže je tam https naprosto k ničemu a nepomůže vám ani HTTPS Everywhere.

P.P.S.: Pokud https právě řešíte a chcete to provést zcela správně, podívejte se na tento článek od Filipa Procházky.

Reakce Alza.cz (doplněno v 11:30)

O vyjádření k popisovaným problémům jsme ještě před publikováním textu požádali Alza.cz. Mluvčí Šárka Jakoubková slíbila, že se e-shop vyjádří během dnešního dne, a slib splnila. Její vyjádření publikujeme v plném rozsahu:


Během včerejšího dne jsme nasadili novou verzi webu, kterou jsme připravovali delší dobu, a která řeší popsaný problém. Přihlášení do uživatelského profilu a nákup tak již probíhá šifrovanou cestou. Šifrovaný web (HTTPS) využíváme a budeme využívat pro sekce Moje Alza, nákupní košík a přihlašovací dialog, kde probíhají zásadní operace s uživatelskými účty. Navíc máme zavedena další bezpečnostní opatření, jako například ověření totožnosti kupujícího při nákupu placeném kartou. 

Doplněno 25.2. 13:00 – Alza si eshop zabezpečovat neplánuje, reaguje autor kritického článku Petr Soukup na oznámení Alzy o údajném zabezpečení e-shopu.

Našli jste v článku chybu?

24. 2. 2015 10:34

Vlado (neregistrovaný)

Ne, ta SMS samozřejmě nechodí.

Zrovna včera jsem to řešil se svojí bankou a u předplatného na IHNED.cz. CHtěl jsem zaplatit kvůli jednomu článku 1 měsíc předplatného, údaje karty jsem nikam do profilu nevyplňoval, pouze při zadání jednorázově do platební brány. Jaké bylo mé překvapení, když se mi další měsíc samo strhlo předplatné. Podle banky je to OK, autorizace karty proběhla už při tom prvním zadání do platební brány a i když jsem nikam jinam č. karty neukládal, stejně mi obchodník částku s…

24. 2. 2015 11:03

Odposlechnutí nijak. Jenže finta je v tom, že při každém požadavku se vygeneruje nové unikátní ID. Případně se připojí nějaký token.

Takže zatímco skutečný uživatel mezitím načte další stránku, při kterém se vygeneruje nové ID, tak útočník pro svůj útok použije původní ID. No a aplikace, která provede kontrolu, zjistí, že ID nesouhlasí, tudíž předpokládá, že došlo ke zneužití sezení, tak provede preventivní odhlášení a dál uživatele, ať už jim je kdokoli, nepustí dál. A to platí i pro opak. Úto…

Vitalia.cz: Chtějí si léčit kvasinky. Lék je jen v Německu

Chtějí si léčit kvasinky. Lék je jen v Německu

Podnikatel.cz: Víme první výsledky doby odezvy #EET

Víme první výsledky doby odezvy #EET

Lupa.cz: Na koho se v Křišťálové Lupě nedostalo?

Na koho se v Křišťálové Lupě nedostalo?

Podnikatel.cz: Přehledná titulka, průvodci, responzivita

Přehledná titulka, průvodci, responzivita

DigiZone.cz: Rádio Šlágr má licenci pro digi vysílání

Rádio Šlágr má licenci pro digi vysílání

DigiZone.cz: Další dva kanály nabídnou HbbTV

Další dva kanály nabídnou HbbTV

Měšec.cz: Jak levně odeslat balík přímo z domu?

Jak levně odeslat balík přímo z domu?

Vitalia.cz: Dáte si jahody s plísní?

Dáte si jahody s plísní?

Vitalia.cz: Naučí vás péct kváskový chléb bez lepku i s lepkem

Naučí vás péct kváskový chléb bez lepku i s lepkem

Root.cz: Telegram spustil anonymní blog Telegraph

Telegram spustil anonymní blog Telegraph

Podnikatel.cz: Přivýdělek u Airbnb nebo Uberu? Čekejte kontrolu

Přivýdělek u Airbnb nebo Uberu? Čekejte kontrolu

Podnikatel.cz: Berňák kvůli EET prodlužuje otevírací dobu

Berňák kvůli EET prodlužuje otevírací dobu

DigiZone.cz: Milan Kruml: procházka TV historií

Milan Kruml: procházka TV historií

Vitalia.cz: Manželka je bio, ale na sex moc není

Manželka je bio, ale na sex moc není

Měšec.cz: Zdravotní a sociální pojištění 2017: Připlatíte

Zdravotní a sociální pojištění 2017: Připlatíte

Podnikatel.cz: Babiše přesvědčila 89letá podnikatelka?!

Babiše přesvědčila 89letá podnikatelka?!

Podnikatel.cz: Zavře krám u #EET Malá pokladna a Teeta?

Zavře krám u #EET Malá pokladna a Teeta?

DigiZone.cz: ČT má dalšího zástupce v EBU

ČT má dalšího zástupce v EBU

DigiZone.cz: Digi CZ výrazně zlevnila balíček HBO

Digi CZ výrazně zlevnila balíček HBO

Podnikatel.cz: Na poslední chvíli šokuje vyjímkami v EET

Na poslední chvíli šokuje vyjímkami v EET