PrestaShop
Tip
Apprenez et pratiquez le hacking AWS :
HackTricks Training AWS Red Team Expert (ARTE)
Apprenez et pratiquez le hacking GCP :HackTricks Training GCP Red Team Expert (GRTE)
Apprenez et pratiquez le hacking Azure :
HackTricks Training Azure Red Team Expert (AzRTE)
Soutenir HackTricks
- Vérifiez les plans d’abonnement !
- Rejoignez le 💬 groupe Discord ou le groupe telegram ou suivez-nous sur Twitter 🐦 @hacktricks_live.
- Partagez des astuces de hacking en soumettant des PR au HackTricks et HackTricks Cloud dépôts github.
De XSS à RCE
- PrestaXSRF: Script d’exploitation PrestaShop qui élève XSS à RCE ou d’autres vulnérabilités critiques. Pour plus d’infos voir this post. Il offre support pour les versions PrestaShop 8.X.X et 1.7.X.X, et permet :
- (RCE) PSUploadModule(); - Upload a custom Module : Téléverse un module persistant (backdoor) sur PrestaShop.
ps_checkout ExpressCheckout silent login account takeover (CVE-2025-61922)
Validation d’identité manquante dans le module
ps_checkout< 5.0.5permet à un attaquant non authentifié de basculer la session sur n’importe quel client en fournissant son email.
- Endpoint (non authentifié) :
POST /module/ps_checkout/ExpressCheckout. - Flow :
ExpressCheckout.phpaccepte le JSON de l’attaquant, ne vérifie queorderID, construitExpressCheckoutRequestet appelleExpressCheckoutAction::execute(). - Auth bug : Dans les versions vulnérables
ExpressCheckoutActionappelleCustomerAuthenticationAction::execute()quand aucun utilisateur n’est connecté. Cette méthode fait simplementcustomerExists(<payer_email>)etcontext->updateCustomer(new Customer($id)), donc existence de l’email == connexion (pas de vérification de mot de passe/token). - Champ email contrôlé par l’attaquant :
order.payer.email_addressdans le payload JSON est lu parExpressCheckoutRequest::getPayerEmail().
Exploitation steps
- Récupérer n’importe quel email client enregistré (le compte admin est séparé et non affecté par ce flux).
- Envoyer un POST non authentifié au controller avec
orderIDplus l’email de la victime dansorder.payer.email_address. - Même si l’endpoint renvoie
500, la réponse inclura des cookies pour le contexte client de la victime (session déjà basculée), permettant l’accès aux PII ou l’achat avec des cartes enregistrées.
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éférences
- CVE-2025-61922: Zero-Click Account Takeover on Prestashop (blog)
- Avis de sécurité GitHub GHSA-54hq-mf6h-48xh
Tip
Apprenez et pratiquez le hacking AWS :
HackTricks Training AWS Red Team Expert (ARTE)
Apprenez et pratiquez le hacking GCP :HackTricks Training GCP Red Team Expert (GRTE)
Apprenez et pratiquez le hacking Azure :
HackTricks Training Azure Red Team Expert (AzRTE)
Soutenir HackTricks
- Vérifiez les plans d’abonnement !
- Rejoignez le 💬 groupe Discord ou le groupe telegram ou suivez-nous sur Twitter 🐦 @hacktricks_live.
- Partagez des astuces de hacking en soumettant des PR au HackTricks et HackTricks Cloud dépôts github.


