Tegnap (2022.07.22.) a Prestashop közleményt adott ki olyan sebezhetőségről, mely az 1.6.0.10-estől az 1.7.8.2-es verziószámú rendszerekig érinti a shopokat.
Az angol nyelvű poszt IDE KATTINTVA olvasható.
A támadás részletei
- a támadó egy POST jellegű kérést intéz a Prestashop felé, melyet egy úgynevezett “SQL injection“-féle sebezhetőséggel kivitelez,
- körülbelül egy másodperc múlva a támadó GET kérést küld a főoldalnak paraméterek nélkül. Ennek hatására a Prestashop gyökérkönyvtárában létrejön egy
blm.php
fájl, - innentől már képes további GET kéréseket küldeni ennek a php fájlnak, melynek eredményeképp azt tehet amit csak szeretne. Egyes esetben hamis fizetési módot állít be, amivel a gyanútlan vásárló fizet, de a pénz nem hozzád érkezik végül, hanem a támadóhoz.
Megoldások
A jelenlegi 1.7.8.6-os rendszer már mentes ettől a sebezhetőségtől, így az erre való frissítés (modulokkal együtt) az egyik megoldás.
Másik, hogy manuálisan korrigáljuk azt a programkódot, ami “befoltozza” ezt a rést. A támadó – a Prestashop szerint – a MySQL Smarty Cache storage egy részét használja fel, s bár ez alapvetően nincs bekapcsolva, ő megteheti ennek a aktiválását távolról. Legjobb, ha ezt egy-az-egyben kiiktatod. Ehhez nyisd meg a “/config/smarty.config.inc.php” fájlt, és töröld ki az alábbi sorokat benne (1.6 esetén 40-43, 1.7 esetén 43-46-os sorok):
if (Configuration::get('PS_SMARTY_CACHING_TYPE') == 'mysql') {
include _PS_CLASS_DIR_.'Smarty/SmartyCacheResourceMysql.php';
$smarty->caching_type = 'mysql';
}
Ezen felül még érdemes megemlíteni, hogy a Kívánságlista (blockwishlist) 2.0.0-tól a 2.1.0-s verzióig szintén érintett, így ha használod ezt a modult a jelölt verziószámon belül, úgy frissítsd azt.
Kutatás arra, hogy megtámadtak-e már
A szerver log-jában (naplójában) érdemes utánanézni annak, hogy a fenti támadást végrehajtották-e már ellened a múltban. Álljon itt egy példa, hogyan is néz ki és mit is érdemes keresni:
– [14/Jul/2022:16:20:56 +0200] “POST /modules/XXX/XXX.php HTTP/1.1” 200 82772 “-” “Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_1) AppleWebKit/602.2.14 (KHTML, like Gecko) Version/10.0.1 Safari/602.2.14”
– [14/Jul/2022:16:20:57 +0200] “GET / HTTP/1.1” 200 63011 “-” “Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.98 Safari/537.36”
– [14/Jul/2022:16:20:58 +0200] “POST /blm.php HTTP/1.1” 200 82696 “-” “Mozilla/5.0 (Windows NT 10.0; WOW64; rv:50.0) Gecko/20100101 Firefox/50.0”
A Prestashop kiemeli, hogy ettől függetlenül a támadás naplója a fentitől eltérő is lehet (tekintettel arra, hogy több módja is van ennek a behatolásnak), így a fenti manuális javításnak akkor is van létjogosultsága, ha nem találsz ilyen bejegyzéseket a naplóban – illetve természetesen a jövőre nézve preventív értéke is van a korrigálásnak.
Végszó
A Prestashop hamarosan kiad egy patch-et (javítócsomagot, befoltozó kódot) a cikk elején megjelölt verziószámokra, ahogyan ezt tenni szokta ilyen esetekben. Megjegyzendő, hogy ennél a rendszernél az ilyen jellegű támadás elég ritka: ezen kívül én csak egyre emlékszem 2013 óta, amiről szintén írtam cikket. A nyílt forráskódú webes megoldások hátránya, hogy bárki megismerheti a programkódot és kereshet támadási felületet, előnye, hogy rengetegen használják és így a javítás sem marad el. A rengeteg fejlesztő és felhasználó a garancia arra, hogy – a más jellegű rendszerekhez képest – Prestashop nagy biztonsággal használható, amennyiben a rendszer naprakész.
A javítást minden Prestashop Biztosítás 0/24 partnerünknél automatikusan elvégeztük.