PrestaShop
Tip
Ucz się i ćwicz Hacking AWS:
HackTricks Training AWS Red Team Expert (ARTE)
Ucz się i ćwicz Hacking GCP:HackTricks Training GCP Red Team Expert (GRTE)
Ucz się i ćwicz Hacking Azure:
HackTricks Training Azure Red Team Expert (AzRTE)
Wsparcie dla HackTricks
- Sprawdź plany subskrypcyjne!
- Dołącz do 💬 grupy Discord lub grupy telegramowej lub śledź nas na Twitterze 🐦 @hacktricks_live.
- Dziel się trikami hackingowymi, przesyłając PR-y do HackTricks i HackTricks Cloud repozytoriów na githubie.
Od XSS do RCE
- PrestaXSRF: PrestaShop Exploitation Script, który eskaluje XSS do RCE lub innych krytycznych podatności. Po więcej informacji sprawdź this post. Oferuje wsparcie dla PrestaShop Versions 8.X.X and 1.7.X.X, i pozwala na:
- (RCE) PSUploadModule(); - Upload a custom Module: Wgrać trwały moduł (backdoor) do PrestaShop.
ps_checkout ExpressCheckout — ciche przejęcie konta przez logowanie (CVE-2025-61922)
Brak walidacji tożsamości w module
ps_checkout< 5.0.5pozwala niezalogowanemu atakującemu przełączyć sesję na dowolnego klienta, podając jego adres e-mail.
- Endpoint (unauth):
POST /module/ps_checkout/ExpressCheckout. - Przebieg:
ExpressCheckout.phpakceptuje kontrolowany przez atakującego JSON, sprawdza tylkoorderID, tworzyExpressCheckoutRequesti wywołujeExpressCheckoutAction::execute(). - Błąd uwierzytelnienia: W podatnych wersjach
ExpressCheckoutActionwywołujeCustomerAuthenticationAction::execute()gdy żaden użytkownik nie jest zalogowany. Ta metoda po prostu wykonujecustomerExists(<payer_email>)icontext->updateCustomer(new Customer($id)), więc istnienie adresu e-mail == logowanie (brak sprawdzenia hasła/tokenu). - Pole email kontrolowane przez atakującego:
order.payer.email_addressw payloadzie JSON jest odczytywane przezExpressCheckoutRequest::getPayerEmail().
Kroki eksploatacji
- Zbierz dowolny zarejestrowany adres e-mail klienta (konto admina jest oddzielne i nie jest objęte tym przepływem).
- Wyślij niezautoryzowany POST do kontrolera z
orderIDoraz adresem e-mail ofiary worder.payer.email_address. - Nawet jeśli endpoint zwróci
500, odpowiedź będzie zawierać ciasteczka dla kontekstu klienta ofiary (sesja już przełączona), umożliwiając dostęp do danych osobowych (PII) lub dokonywanie zakupów z zapisanymi kartami.
POST /module/ps_checkout/ExpressCheckout HTTP/1.1
Host: `<target>`
Content-Type: application/json
Content-Length: 72
{"orderID":"1","order":{"payer":{"email_address":"victim@example.com"}}}
Źródła
- CVE-2025-61922: Zero-Click Account Takeover on Prestashop (blog)
- GitHub Advisory GHSA-54hq-mf6h-48xh
Tip
Ucz się i ćwicz Hacking AWS:
HackTricks Training AWS Red Team Expert (ARTE)
Ucz się i ćwicz Hacking GCP:HackTricks Training GCP Red Team Expert (GRTE)
Ucz się i ćwicz Hacking Azure:
HackTricks Training Azure Red Team Expert (AzRTE)
Wsparcie dla HackTricks
- Sprawdź plany subskrypcyjne!
- Dołącz do 💬 grupy Discord lub grupy telegramowej lub śledź nas na Twitterze 🐦 @hacktricks_live.
- Dziel się trikami hackingowymi, przesyłając PR-y do HackTricks i HackTricks Cloud repozytoriów na githubie.


