prestadev526 Posted April 28, 2012 Share Posted April 28, 2012 Bonjour à tous, J'utilise un prestashop dernière version (1.4.7.3). Récemment, mon serveur a été désactivé par OVH apparamment suite à une attaque (envoi de code malveillant dans la variable POST) à travers le formulaire "mot de passe oublié" de mon Prestashop. J'ai un peu fouillé le code incriminé dans la sécurisation de ce champ : if (!($email = Tools::getValue('email')) OR !Validate::isEmail($email)) $this->errors[] = Tools::displayError('Invalid e-mail address'); public static function isEmail($email){ return !empty($email) AND preg_match('/^[a-z0-9!#$%&\'*+\/=?^`{}|~_-]+[.a-z0-9!#$%&\'*+\/=?^`{}|~_-]*@[a-z0-9]+[._a-z0-9-]*\.[a-z0-9]+$/ui', $email); } Ce code me semble correct... Qu'en pensez-vous? Je peux peut-être encore le renforcer avec la fonction (PHP 5 >= 5.2.0) filter_var($email , FILTER_VALIDATE_EMAIL); Mais je fais peut-être fausse route. Voici le message renvoyé par OVH : Problème rencontré : Script flooding mailout Commande apparente : php.ORIG.5_3 -c /usr/local/lib/php.ini-2 -d register_globals=0 -d magic_quotes_gpc=1 -d session.use_trans_sid=1 password.php Exécutable utilisé : N-A Voici les seules données de LOG que je possède sur cette attaque : POST /password.php HTTP/1.1 200 1889 <- injection POST /password.php HTTP/1.1 500 355 POST /password.php HTTP/1.1 500 355 Il faut noter qu'au moment des faits la config SMTP de mon Prestashop faisait appel à une adresse et un mot de passe incorrect. Qu'en pensez-vous? Link to comment Share on other sites More sharing options...
Carl Favre Posted April 30, 2012 Share Posted April 30, 2012 Bonjour PrestaDev526, Un développeur a jeté un coup d'oeil et rassure toi il n'y a pas de faille de sécurité. Sûrement un bot qui a du appeler trop de fois cette page d'où le Script flooding mailout. Link to comment Share on other sites More sharing options...
prestadev526 Posted April 30, 2012 Author Share Posted April 30, 2012 Merci beaucoup pour votre support et d'avoir étudié cette question je ne voyais rien d'anormal moi non plus dans le code mais on ne sait jamais, toutefois j'ai étudié le log de l' "attaque" et il s'agit vraiment d'une IP qui a appelé la page password une seule fois et qui a apparemment déclenché immédiatement une INTERNAL SERVER ERROR. Je ne pense pas du tout qu'il s'agit d'un BOT et il est certain que la page a malmené le serveur dès le premier envoi de la variable POST! Il n'y a donc pas eu de flood sur la page. La séquence ci-dessous n'apparait qu'une fois dans le LOG et après la premère requête sur la page le serveur semble avoir directement planté et renvoyé une erreur 500 sur les deux appels (refresh?) suivants et j'ai directement reçu l'avertissement d'OVH qui a directement désactivé le site (quelques minutes plus tard) suite à une erreur générée sur cette page. POST /password.php HTTP/1.1 200 1889 POST /password.php HTTP/1.1 500 355 POST /password.php HTTP/1.1 500 355 Mon hypothèse serait que cette erreur a été déclenchée par: - La configuration de l'envoi des mails en SMTP lors de l'installation de prestashop - L'absence de paramètres SMTP corrects (login et mot de passe encodés liés à une adresse email qui n'avaient pas encore été créée sur le serveur au moment de l' "attaque") - La demande d'envoi du mot de passe via password.php faisant appel à ces paramètres incorrects Par sécurité, pourriez-vous voir/vérifier dans le code ce qui se passe dans un tel cas de figure? Merci beaucoup ! Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now