Jak jde na Alza.cz nakoupit za cizí peníze

Posted 22. 02. 2015 / By Petr Soukup / Eshop

etStačí minimální znalosti nebo schopnost postupovat podle jednoduchého návodu a "můžete" si pořídit nový notebook, aniž byste za něj platili. Tohle rozhodně není jen problém Alzy a naprostá většina eshopů má úplně stejnou slabinu. V poslední době tu hodně píšu o důležitosti https a je načase názorně si předvést, proč je to tak moc důležité.

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.

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ší.

alzawifi

Každá wifi je veřejná

Víte jak funguje wifi? 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.

wireshark-start

wireshark-nofilter

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.

wireshark-filter

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

wireshark-stream

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 nebezbeč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 eshopu přihlásite, tak to eshop zpracuje, ale při přechodu na další stránku už zase nemá zdání, kdo jste. Řeší se to přes session cookie - eshop 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 jí teď stačí předložit eshopu 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.

UPDATE: Vypadá to, že Alza už účet zablokovala, takže kód výše už nebude fungovat. Postup na získání vlastního ale funguje pořád stejně.

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í některé banky povinnost ověřit platbu kartou přes SMS - chybějící zabezpečení obchodu tak zachraňuje banka. UPDATE: ověření přes SMS probíhá jen při prvním uložení karty. Při opakovaném použití (nebo zneužití) už se žádná SMS neposílá.

alza-karta

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č.

2015-02-22 17_28_23

Zneužíváme informace

Platební karty nebo kredity ale nemusí být v každém eshopu. 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 eshop, 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 vám 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

 

UPDATE: vyjádření alza.cz

Alza k článku sepsala vyjádření - můžete si ho přečíst zde.

 

UPDATE 3.3.:

Alza nasadila https. Má to sice ještě mouchy, ale už jsou skoro v cíli. Uděluji plusový bod!

 



O blogu
Blog o provozování eshopů a technologickém zázemí.
Aktuálně řeším hlavně cloud, bezpečnost a optimalizaci rychlosti.

Rozjíždím službu pro propojení eshopů s dodavateli.