Jak jsme hacknuli SAP

Jan Zatloukal


Nacházíte se v archivu mého blogu, který již není udržovaný. Novější články o testování píšu na Testujeme.software.

seznam článků v archivu blogu

Jeden z našich klientů začal nasazovat SAP na řízení procesů ve firmě a tak chtěl také vytvořit e-shop, který by na něj byl napojen.

Se SAPem jsem žádné zkušenosti neměl a tak jsme udělali „jen“ kompletní návrh e-shopu (včetně dnes módních zkratek UX/UI) a taky jsem nakódoval šablony.

Samotnou tvorbu měla na starosti firma, která SAP implementovala – měla s ním zkušenosti a vlastní řešení pro provoz e-shopu. Jenže…

…ani po půl roce nebyl e-shop vůbec připraven. Základní funkce e-shopu nefungovaly, šablony jsem pořád musel upravovat protože programátorům „komponenta vypisuje HTML jinak“. Jediné co tak nějak fungovalo byl katalog produktů.

Klientovi i nám už docházela trpělivost, vztahy s implementační firmou byli horší a horší a tak jsme se rozhodli, že i přes to zkusíme e-shop postavit sami.

Ten SAP snad nebude takovej problém…

Nemohli jsme samozřejmě kontaktovat implementační firmu, aby nám dali nějakou dokumentaci nebo přístupy. Všechno tak bylo jen a jen na nás.

Guerillová akce

Základním předpokladem bylo tedy nějak získat data ze SAPu k nám. V klientově kanceláři tak přibyl náš počítač, který kolega nachystal tak, aby byl zapojen v místní síti a k nám vytvořil zabezpečený SSH tunel.

Zbývalo tedy dostat se do SAPu.

IP adresu serveru jsme znali, přihlašovací jméno také, chybělo jen heslo…

Stalo se to, co by nikdo nečekal. Kolega zkopíroval hvězdičky „*“ z přihlašovacího okna SAPu a vložil je do poznámkového bloku.

A měli jsme heslo.

Nekecám. Tohle se fakt stalo.

Vytvořili jsme si tedy nového uživatele s právy jen ke čtení (aby jsme nic nepokazili) a mohli odjet domů. Tedy až po tom, co kvůli nám místní poskytovatel internetu musel trochu poupravit nastavení sítě. Kolega mu ale ukázal co a jak a tak to nebyl problém (i když zřejmě ani netušil, co mu s tím dělá) :-)

Tabulkové peklo

Tímto krokem se věc přenesla na mě. Mým úkolem bylo ve změti tabulek najít systém a vytvořit SQL (MSSQL) dotazy, pomocí kterých bude možné převést data ze SAPu do našeho e-shopu.

Jak už jsem říkal – nebylo koho se zeptat, nebyla dokumentace, prostě nic. Tabulky měli divné názvy, chyběla struktura, čert aby se v tom vyznal.

Trvalo mi to pár dní, ale nakonec jsem našel všechny možné i nemožné vazby.

Zajímavý byl třeba systém objednacích čísel, který měl asi 4 tabulky, kdy v jedné tabulce bylo zaznamenána pozice parametru v objednacím čísle, v další jeho hodnota, v další pak skupina parametrů, … a tak podobně.

Nakonec jsem vytvořil několikastránkový dokument plný SQL dotazů a popisů co a jak funguje a mohlo se začít pracovat na importu produktů do našeho e-shopu.

Funguje to

Zpočátku bylo potřeba ještě spoustu věcí doladit, ale e-shop funguje už několik let.

Takže mise byla úspěšná.

Do SAPu máme stále jen přístup ke čtení, takže aktualizace produktů probíhá pouze jednosměrně, a to ze SAPu do e-shopu. Pokud by jsme měli například i vytvářet objednávky, už by jsme se zřejmě bez asistence implementátorské firmy neobešli.