Salut
************************************************** *******************************
EDIT:
Pour joomla 1.5 je vous suggère plutôt ces topics:
Le plugin Sentinelle étant un équivalent en plus perfectionné, du kit de ce topic.
************************************************** *******************************
Je fais un topic, sinon on va me taxer de Flooder
On attend vos feedbacks!
Test sur Joomla 1.0.13 validé par "Tirou"
Test sur Joomla 1.0.12 validé par "Sirius"
etc...
NOTE: Pour ceux qui ont déjà installé ce kit, merci de: Signaler quels composants sont visés
Methode de protection basique:
1) bien vérifier que tous tes fichiers sont vérouillé dans l'administration. (templates index/css interdire la modification après l'enregistrement etc..)
Bien vérifier que tous tes repertoires ont un index.html (même zéro bit pas grave)
ATTENTION: Sauf dans /www et /administrator
2)- Joomla! Register Globals Emulation: OFF
- Register Globals: OFF (configuration globale, onglet "serveur" uniquement sous joomla 1.0.13)
- Magic Quotes: ON
- Safe Mode: OFF <== si possible
- File Uploads: ON
- Session auto start: OFF
3) Dans ton (ou tes) .htaccess tu rajoute au tout début ces lignes qui empecherons une eventuelle tentative de listing de celui ci:
Code:
<Files .htaccess>
order allow,deny
deny from all
</Files>
>>A lire au sujet des Htaccess<<
4) Ensuite dans le fichier globals.php
Juste aprés ça:
Code:
// no direct access
defined( '_VALID_MOS' ) or die( 'Restricted access' );
Tu rajoute ça:
Code:
// *************
if (
ereg('gif\?cmd',$_SERVER['REQUEST_URI']) ||
ereg('gif&cmd',$_SERVER['REQUEST_URI']) ||
ereg('jpg\?cmd',$_SERVER['REQUEST_URI']) ||
ereg('jpg&cmd',$_SERVER['REQUEST_URI']) ||
ereg('txt\?cmd',$_SERVER['REQUEST_URI']) ||
ereg('txt&cmd',$_SERVER['REQUEST_URI']) ||
ereg('txt\?',$_SERVER['REQUEST_URI'])
)
{
$mail_perso = "tonadresse@mail.com";
$mailheaders .= "From: ".$mail_perso . "\r\n";
// $mailheaders .= "Bcc: ".$mail_perso. "\r\n"; // pour copie cachée
$msg = "Une tentative de hacking commise sur ".$_SERVER['HTTP_HOST']." par ".$_SERVER['REMOTE_ADDR']." en appelant ".$_SERVER['REQUEST_URI']."\n\n";
$msg .= "HTTP_SERVER_VARS:\n\n";
$msg .= "HTTP_HOST_NAME => ".gethostbyaddr($_SERVER['REMOTE_ADDR'])."\n\n";
while (list ($key, $val) = each ($_SERVER)) $msg .= "$key => $val\n";
$msg = addslashes($msg);
eval("\$msg = \"$msg\";");
$msg = stripslashes($msg);
@mail($mail_perso,'HACKING TENTATIVE '.$_SERVER['REMOTE_ADDR'],$msg,$mailheaders);
$iphack = "http://www.who.is/whois-ip/ip-address/".$_SERVER['REMOTE_ADDR']."";
die('<html><head><title>Stop Hacking</title></head><body style=margin:0px;><div align="center" style="background-color:#CCCC33;"><br /><br /><font size="+6"><b>Stop hacking!</b></font><br /><br /><img src="http://www.le_site.chose/ton_image_déstiné_au_hacker.gif" border="0"><br /><br /><br /><br /><iframe width=100% height=300 frameborder=0 src="'.$iphack.'"></iframe></div></body></html>');
}
// *************
Sans oublier de changer:tonadresse@mail.com par ton adresse a toi et www.le_site.chose/ton_image_déstiné_au_hacker.gif
**********************
Pour tester si le script est effectif sur votre site lancer ceci dans votre navigateur:
http://www.votresite.com/index.php?jpg&cmd (modifier votresite par le nom du votre)
**********************
Ce script bloque les attaques et t'averti par mail quel fichier (il te donne le lien) et à partir de quel serveur le cracker a voulu injecter, tout en bloquant la tentative.
ATTENTION ! Si votre site est sujet à un grand nombre d'attaques (et vous risquez d'être surpris) alors le server mail de votre hébergeur peut être surchargé !
Si vous ne souhaitez plus recevoir les mails de notification, supprimez simplement votre adresse mail dans le script.
Un Whois complet est retourné, ainsi qu'un jolie écran personalisé pour le cracker
A savoir que le script est actif sur la totalité des requêtes (pas des types de requêtes) vu la modif du globals.php
En ce qui concerne les injections SQL, c'est propre au codage des composants surtout ceux qui necessite un login ou une vérification de session, si le cracker parvient (pour les plus vicelard) a te polluer avec un script en PERL alors la c'est la boîte de Pandorre qui s'ouvre....
Pour finir, il est assé inutile de tenir un fichier log des IP retournée comme attaquante car en général c'est du spoofing d'IP donc une chaîne sans fin.