reklama

PayU má problém, za stejnou cenu nakoupíte 10× víc zboží [aktualizováno]

PayU je platební systém, který do jisté míry konkuruje globálnímu PayPalu a umožňuje platby pomocí kreditních karet i rychlých převodů jednotlivých bank. Paul Tomkiel se nyní na svém webu rozepsal o postupu, který umožní zákazníkovi zfalšovat počet nakupovaných předmětů. Problém se přitom může týkat i českých obchodníků, kteří služby PayU využívají.

Klepněte pro větší obrázek
Hash je korektní, vše se zdá být v pořádku. Jenže není, objednali jsme si 19 knih za 8,50 (celkem tedy 161,50) místo jedné za 98,50 (zdroj: codel10n.com)

Chyba v zabezpečení spočívá v jednoduché změně odesílaného formuláře, z něhož je poté společně s privátním klíčem generován kontrolní součet pro ověření odeslaných údajů. Nejlépe to bude vidět na následujícím příkladu autora, který objednal jeden kus svojí knihy týkající se lokalizace webů (Best Localization Tips from CodeL10n hardbook). Z formuláře na webu jsou odeslány všechny potřebné údaje a následně spojeny do jednoho textového řetězce. Ten může v tomto případě vypadat takto: PLN127.0.0.1CodeL10n PayU hack145227Best Localization Tips from CodeL10n hardbook198509850.

Zleva obsahuje údaje o měně, IP adresu zákazníka, popis, identifikátor objednávky a především počet objednaného zboží (1) a cenu (98,50). To je tučně zvýrazněná část. Poslední čtyřčíslí je potom celkový součet. K tomuto řetězci se připojí privátní klíč a vygeneruje se kontrolní součet, třeba pomocí MD5. Pokud by se někdo pokusil změnit kterýkoliv údaj ve formuláři, výsledný hash by neseděl a platba by nemohla projít.

V případě PayU však existuje cesta umožňující změnit parametry objednávky a dostat stejný kontrolní součet. Stačí prostá změna atributů odeslaného formuláře, v nichž místo 1 knihy za 98,50 objednáme 19 knih za 8,50. Řetězec použitý pro vygenerování hashe zůstane stejný a objednávka bude validní. PayU totiž nijak neověřuje, zda se součet shoduje s násobkem počtu kusů a cenou za jediný kus.

Paul Tomkiel obdržel v průběhu prosince potvrzení z PayU, že bude problém promptně vyřešen. Proto jsme požádali české zastoupení o vyjádření, zda k opravě chyby již došlo.

Aktualizace: Podle zprávy autora nebyla chyba stále odstraněna. Že je zneužití i nadále možné si můžete vyzkoušet na testovacím formuláři.

Témata článku: Bezpečnost, MD5, Hack, Tips, Playground

31 komentářů

Nejnovější komentáře

  • Pepa Berger 8. 1. 2016 1:29:21
    Zvyseni poctu ks si asi malo kdo vsimne a tezko se to uhada. Mnohem...
  • Martin Suchan 7. 1. 2016 9:34:08
    Ten clovek, ktery navrhnul generovani hashe transakce pomoci spojeni...
  • Pavel Černík 6. 1. 2016 17:54:06
    zasadni chyba v myslenkovem postupu hackera - payU neni prodejce ale pouze...
reklama
reklama