Page 1 sur 2
hack continuel de mon site besoin d'aide
Posté : 01 mars 2008, 10:36
par gipelo
bonjour,
monsite:
http://www.corvette-online.net
est depuis quelques je suis continuellement hacké: ajout de dossiers avec un .htaccess et une check.js qui redirige vers des pages X.
je doit avoir des failles de securité dans mes scripts, mais vu la complexité de mon site, cela vas étre long à reprendre.
ma quesion est donc la suivante:
y'a t'il un moyen de blocker la création de repertoires... voir même l'ecriture de fichier via des script php en utilisant un .htaccess ?
pour info mon hebergeur c'est free.
Merci de votre aide
Gilles
Posté : 01 mars 2008, 12:50
par Berzemus
salut,
As-tu une idée comment les hackers procèdent ? Des logs, quelque chôse ou ça se verrait ?
Posté : 02 mars 2008, 21:51
par gipelo
non, je ne sais aps pas comment ils font... et je suppose que je n'ai pas accés aux fichier log chez free.

Posté : 10 mars 2008, 15:32
par gipelo
c'est vachement puissant, en effet c'est toujours le même repertoire dans lequel le hackeur introoduit le repertoire avec tous ces fichiers:
./Calendrier/Fonctions/
j'ai donc par precaution viré tous le script php de cette section et interdit par un .htaccess (deny from all) l'accés au dossier en question.
resultat aprés deux jours de calme... le hackeur à reussit à remettre son repertoire dans le même dossier....
j'ai essayé de virer mon dossier Fonctions... mais le hackeur refait un dossier fonction pour y mettre ces propres scripts HELLLLLLLP

Posté : 10 mars 2008, 15:44
par Calimero
Si j'étais toi, je vérifierais en premier du côté des parties de ton site qui permettent d'uploader un fichier (il faut bien que le type passe par quelquepart pour faire arriver ses fichiers sur ton site).
Posté : 10 mars 2008, 18:12
par AB
En plus du conseil de Calimero, peut-être ton mot de passe est trop simple et a été hacké.
Posté : 10 mars 2008, 18:41
par gipelo
Merci pour vos conseils.
Je vais dans un premier temps rechanger mon mot de passe... mais bon il me semble suffisament long et complexe pour na pas étre hacké tous les mois LOL
ensuite je vais desactivé mes script qui permette le chargement...
à mon avis le hackeur utilise une faille de mes scripts pour uploader ou créer les fichiers
Posté : 10 mars 2008, 18:50
par AB
Merci pour vos conseils.
Je vais dans un premier temps rechanger mon mot de passe... mais bon il me semble suffisament long et complexe pour na pas étre hacké tous les mois LOL
ensuite je vais desactivé mes script qui permette le chargement...
à mon avis le hackeur utilise une faille de mes scripts pour uploader ou créer les fichiers
Si ton mdp est suffisamment long, le pb est ailleurs. Fais comme tu as dis et désactive tes scripts d'upload.
Tiens nous au courant pour la suite, c'est toujours utile d'avoir des retours d'expériences

Posté : 12 mars 2008, 10:31
par gipelo
Changement de password hier et ..... rebelote ce matin nouveau hacking
j'ai supprimé l'arbo compléte initiale que j'avais realisé : ./Calendrier/Fonctions/
et ce matin les repertoires existent à nouveau et en plus dans Fonctions j'ai un dossier avec les scripts du hackeur.
a votre avis chez free j'ai moyen d'avoir les fichiers log ?
Posté : 12 mars 2008, 13:00
par Cyrano
Ce serait surprenant. Visiblement, tu t'es fait piquer ton mot de passe une nouvelle fois.
Le problème est peut-être bien sur ta machine en local où tu aurais un cheval de Troie qui balance tes identifiants. Un petit ménage en local m'apparaitrait comme un point de départ indispensable.
Posté : 12 mars 2008, 13:19
par icebreak
Vas dans un cyber café ou à ton boulot et change le mot de passe.
Et ne fait rien de chez toi en gros. Fais tout ailleurs.
Si tu vois que le HACKER reviens plus, c'est que ta du ménage à faire sur ton PC.
Posté : 13 mars 2008, 09:40
par gipelo
changement de mot de passe réalisé depuis le boulot... même résultat.
je vais inclure un mouchard sur chaque fichier PHP de mon site
je vais recupérer les infos suivantes:
date-heure
page
parametre de la page
IP
avec cela je vais voir normalement si il y'a utilisation froduleuse de mes scripts
merci pour vos conseils et votre aide
Posté : 13 mars 2008, 10:33
par mere-teresa
Utilises-tu un quelconque CMS ? ou un outil en PHP que tu n'as pas développé toi -même .?
Posté : 13 mars 2008, 11:34
par icebreak
Ouais moi je vois que ça, un truc genre Faille PHP-NUKE.
Ou alors il a téléchargé directement un CMS fait pour le piratage.
Rien qu'en mattant le HTML y a des trucs de la sorte
Code : Tout sélectionner
./php/thumbgen.php?fichier=../Vosautos/Vosautos/195/ext1.jpg
<a href="../../Photos/photos/page.php?N_page=1&dirname=Dousard07">
Pas très sécurisé ces appels direct au Fichiers... et répertoire.
A mon humble avis.
Posté : 13 mars 2008, 12:25
par gipelo
Les scripts sont tous maison le seul truc qui n'est pas developpé par mes soins c'est phpBB
pour le morceau de code que tu site, c'est en fait un script qui vas créer une miniature à partir d'une image dont le nom est passé en parametre ... et la page a qui je passe le nom de dossier affiche toutes les images de ce dernier.
comment régler à votre sens les risques de sécurité sur ces pages...sachant que je suis pas expert en securité

)
thumbgen.php
Code : Tout sélectionner
<?
$image = ImageCreateFromJPEG($fichier);
$width = imagesx($image) ;
$height = imagesy($image) ;
$new_width = 120; // largeur a definir
$new_height = ($new_width * $height) / $width ; // hauteur proportionnelle
$thumb = imagecreatetruecolor($new_width,$new_height);
imagecopyresized($thumb,$image,0,0,0,0,$new_width,$new_height,$width,$height);
//imagecopyresampled($thumb,$image,0,0,0,0,$new_width,$new_height,$width,$height);
header("Content-type:image/jpeg");
imagejpeg($thumb);
imagedestroy($image);
imagedestroy($thumb);
?>
Page.php
Code : Tout sélectionner
<? include("../../header.php"); ?><?
/*************************Variable de paramétrage***********************/
//$dirname="./";
//$Menu_path indique le chemin de retour
//$Menu_path_texte indique le texte a afficher pour le lien chemin retour
//$N_page: indique la page courante
$parametre="info.php"; //nom du fichier qui contient les parametres supplementaires
$NB_Images_Par_Page=50;
$TT_Miniature="TN_"; //definition de l'entéte des miniatures
$Fleche_Back="../../commun/back.gif";
$Fleche_Next="../../commun/next.gif";
/***********************************************************************/
/************************Définition des variables***********************/
$fichier_image=array (); // dossier qui vas contenir le nom des fichier jpeg
$NB_Images=0;
$NB_pages=0; // nombre de page total de l'album init a 0
$Page_courante=""; //variable qui contient l'adresse de la page courante
$fichier_parametre=$dirname."/".$parametre;
/***********************************************************************/
include($fichier_parametre);
/********************************Fonction main***************************/
$CurPage=pathinfo($SCRIPT_FILENAME); // | obtention du nom de la page
$Page_courante=$CurPage["basename"]; // | actuelle
$Pos=50*($N_page-1); // détermine la position de base dans le tableau des images
Init_Fonction_Image();
Define_NB_Pages();
/***********************************************************************/
/**********************Determine le nombre de page*********************/
function Define_NB_Pages()
{
global $NB_Images_Par_Page;
global $NB_pages;
global $fichier_image;
$NB_Images=sizeof($fichier_image);
$NB_pages=ceil($NB_Images/$NB_Images_Par_Page);
}
/***********************************************************************/
/**********************Determine la page ou doit revenir le diaporama*********************/
function ADR_retour()
{
global $Page_courante;
global $N_page;
global $dirname;
$Adr_retour=$Page_courante."&N_page=$N_page"."&dirname=$dirname";
return $Adr_retour;
}
/**********************************************************************/
function images($position)
{
global $fichier_image;
global $dirname;
$Adr_retour=ADR_retour();
$image=$fichier_image[$position];
if ($image!="")
{$fichier=$dirname."/".$image;
echo "<a href=diaporama.php?Index=$position&Retour=$Adr_retour ><img src=\"thumbgen.php?fichier=$fichier\" border=\"0\">
/a>";}
}
/************************Détermine si le fichier est une miniature ou pas******************/
function is_miniature($nom_fichier)
{
global $TT_Miniature;
$entete=explode($TT_Miniature,$nom_fichier);
if ($entete[0]==$nom_fichier)
$Is_miniature=false;
else
$Is_miniature=true;
return $Is_miniature;
}
/***********************************************************************/
/************************Met les noms de fichier dans le tableau $fichier_image******************/
function Init_Fonction_Image ()
{
global $fichier_image;
global $dirname;
$dh=opendir($dirname);
while (gettype($file=readdir($dh))!=boolean)
{
$info_fichier=pathinfo($file);
if ((($info_fichier["extension"]=="jpg") or ($info_fichier["extension"]=="JPG")) && is_miniature($file)==false) //si le fichier est un fichier jpeg et pas une miniature on le rajoute dans le tableau de liste des images
{
$fichier_image[]=$file;
}
}
/***********************************************************************/
/************************Fonction retour******************/
function Get_Titre()
{
global $Type_Titre;
global $Nom_meeting;
if ($Type_Titre==1)
echo "<img src=$Nom_meeting>";
else
echo "$Nom_meeting";
}
/*********************************************************/
/************************Gestion des fleches******************/
function Page_retour()
{
global $Menu_path;
global $Menu_path_texte;
$Menu_path="http://corvetteonline.free.fr/Photos/photos/$Menu_path";
if ($Menu_path!="")
echo "<a href=\"$Menu_path\">$Menu_path_texte";
}
/***********************************************************************/
/************************Gestion des fleches******************/
function Gest_Arrows($FCT)
{ global $NB_pages;
global $N_page;
global $nom_meeting;
global $Page_courante;
global $Menu_path;
global $dirname;
global $Fleche_Back;
global $Fleche_Next;
$A_afficher="";
$j=$N_page-1;
$k=$N_page+1;
if($FCT=="back")
{ $Picture_path=$Fleche_Back;
if($N_page==1)
$A_afficher='</a><TD ALIGN=CENTER><div align="left"><a href=\"$Menu_path\"></a><a href="'.$Menu_path.'"><img src='.$Picture_path.' border="0"></a></div></TD>';
else
$A_afficher='<TD ALIGN=CENTER><div align="left"><a href="'.$Page_courante.'?nom_meeting='.$nom_meeting.'&dirname='.$dirname.'&N_page='.$j.'"><img src='.$Picture_path.' border="0"></a></div></TD>';
}
if($FCT=="fwd")
{ $Picture_path=$Fleche_Next;
if($N_page==$NB_pages)
$A_afficher="";
else
$A_afficher='<TD ALIGN=CENTER><div align="left"><a href="'.$Page_courante.'?nom_meeting='.$nom_meeting.'&dirname='.$dirname.'&N_page='.$k.'"><img src='.$Picture_path.' border="0"></a></div></TD>';
}
echo($A_afficher);
// <a href="file:///D|/DRTC2003/meetings/meetings.htm"><img src="file:///D|/DRTC2003/commun/back.gif" border="0"></a>
//<TD ALIGN=CENTER> <div align="right"><a href="file:///D|/DRTC2003/meetings/2003/bourg/page_02.htm"><img src="file:///D|/DRTC2003/commun/next.gif"
//
/************************************************************/
/************************Gestion des pages******************/
function Determine_Page()global $NB_pages $N_page $nom_meeting $Page_courante $dirname;
$A_afficher="";
for($j=1;$j><=$NB_pages;$j++)
{
if ($j==$N_page)
{
$A_afficher=$A_afficher.' '.$j;
}
else
{
$A_afficher=$A_afficher.' '.'</a><a href="'.$Page_courante.'?nom_meeting='.$nom_meeting.'&dirname='.$dirname.'&N_page='.$j.'">'.$j.'</a>';
}
}
echo($A_afficher);
}
}
?>