Fork me on GitHub

XOOPS et mod_security

200706
Juin
  LOKI2006 Documentations 4770
Documentations

Voici une petite aventure qui m'est arrivée cette semaine, et je pense que sa lecture pourra aider d'autres Xoopsiens confrontés à une situarion similaire.

Après avoir changé d'hébergeur à la fin du mois de Mai, j'ai commencé à rencontrer d'étranges problèmes en voulant modifier mon footer.

J'avais beau modifier le contenu du footer depuis mon panneau d'admin, j'étais redirigé automatiquement vers la page d'accueil de mon site et le footer ne subissait aucune modification.

Etant bricoleur dans l'√Ęme, je me suis dit, "c'est pas grave, je vais aller directement modifier les informations dans la table xoops_config" en passant par PhpMyAdmin. L√†, m√™me punition, √† chaque tentative de modification, retour √† la page d'accueil, et table non modifi√©e.

J'ai activé le mode debug (là la modification était bien prise en compte) et je n'ai constaté aucune erreur.

J'ai ensuite testé des modifications sur d'autres tables, et toutes fonctionnaient sans aucun problème, sauf sur la table xoops_tplsource, et encore pas sur toutes les lignes. La ligne 20 (menu principale) était même impossible à afficher.

J'en ai donc conclu que le problème ne se posait que sur les tables contenant un certain type de caractères, et que c'était le module Protector qui devait considérer ça comme une attaque.

J'ai donc désactivé temporairement Protector, et même carrément enlevé une classe sql_inject que j'avais ajoutée. Sans succés.

Persuadé qu'il s'agissait quand même d'un problème de protection (filtrage anti-injection ou autre), j'ai donc contacté le support technique de mon hébergeur (eukhost.com, j'adore travailler avec les Anglais pour ça ) et demandé à ce qu'ils m'envoient les logs du serveur que voilà.

Citation :


[Wed Jun 6 05:22:29 2007] [error] [client 195.93.102.4] mod_security: Warning. Pattern match "phpsessid" at ARGS_VALUES("xoops_redirect") [msg "XSS attack"] [severity "EMERGENCY"] [hostname "www.destination-casino.com"] [uri "/user.php"]
[Wed Jun 6 09:56:09 2007] [error] [client 195.93.102.4] mod_security: Warning. Pattern match "phpsessid" at ARGS_VALUES("xoops_redirect") [msg "XSS attack"] [severity "EMERGENCY"] [hostname "www.destination-casino.com"] [uri "/user.php"]
[Wed Jun 6 11:30:10 2007] [error] [client 206.53.62.20] mod_security: Access denied with redirect to [/]. Pattern match "<(.|\\\\n)+>" at POST_PAYLOAD [severity "EMERGENCY"] [hostname "destination-casino.com"] [uri "/index.php"]
[Wed Jun 6 11:30:20 2007] [error] [client 206.53.62.20] mod_security: Access denied with redirect to [/]. Pattern match "<(.|\\\\n)+>" at POST_PAYLOAD [severity "EMERGENCY"] [hostname "destination-casino.com"] [uri "/modules/index.php"]
[Wed Jun 6 11:30:31 2007] [error] [client 206.53.62.20] mod_security: Access denied with redirect to [/]. Pattern match "<(.|\\\\n)+>" at POST_PAYLOAD [severity "EMERGENCY"] [hostname "destination-casino.com"] [uri "/modules/news/index.php"]
[Wed Jun 6 12:36:23 2007] [error] [client 195.93.102.4] mod_security: Warning. Pattern match "phpsessid" at ARGS_VALUES("xoops_redirect") [msg "XSS attack"] [severity "EMERGENCY"] [hostname "www.destination-casino.com"] [uri "/user.php"]
----------------


Je leur ai par la même occasion demandé s'ils avaient en place un module de potection particulier: réponse, oui, ils utilisent Mod_Security.

Bingo.

Le paramétrage de mod_security comprend les instructions suivantes:

SecFilterSelective ARGS_VALUES "phpsessid"
SecFilter <(.|\\\\n)+>

Exactement les caractères que l'on trouve à profusion à divers endroits de la table tplsource, et qui généraient donc une alerte de type "XSS attack".

J'ai donc ajouté les lignes suivantes dans mon fichier .htaccess:

<IfModule mod_security.c>
    
SecFilterEngine Off
    SecFilterScanPOST Off
</IfModule>


et tout fonctionne à merveille maintenant.

L'astuce du htaccess, je l'ai trouvée sur www.xoops.org en faisant une recherche sur mod_security dans le forum, et je suis tombé sur un post qui décrivait un problème complètement différent, mais la solution était la bonne.

Note: 8.00 (3 votes) - Noter cet article -

Partager Twitter Partagez cette article sur GG+
Format imprimable Envoyer cet article à un ami
Les commentaires appartiennent à leurs auteurs. Nous ne sommes pas responsables de leur contenu.
Semi pro
Inscrit le: 21/11/2004
De: Un petit coin de Belgique
Contributions: 826
satanas Post√© le: 07/06/2007 08:00  Mis √† jour: 07/06/2007 08:40
 Re: XOOPS et mod_security
Excellent, voil√† encore une poign√©e de cheveux √©pargn√©e, c'est le genre de probl√®mes o√Ļ on peut passer des heures √† chercher.

Merci pour l'astuce!
Xoops accro
Inscrit le: 15/07/2004
De:
Contributions: 4763
blueteen Post√© le: 07/06/2007 08:28  Mis √† jour: 07/06/2007 08:40
 Re: XOOPS et mod_security
Bon à savoir !
Merci pour le retour et l'article
Aspirant
Inscrit le: 22/05/2006
De:
Contributions: 21
LOKI2006 Post√© le: 07/06/2007 10:43  Mis √† jour: 07/06/2007 11:46
 Re: XOOPS et mod_security
Citation :
Excellent, voilà encore une poignée de cheveux épargnée,


j'aurais bien aim√© √©pargner les miens, de cheveux...parce que j'y ai pass√© quelques nuits avant de comprendre d'o√Ļ √ßa venait.
Aspirant
Inscrit le: 19/12/2005
De:
Contributions: 81
masterbanq Post√© le: 07/06/2007 18:23  Mis √† jour: 07/06/2007 18:23
 Re: XOOPS et mod_security
ça concerne quel hebergeur ?
Aspirant
Inscrit le: 22/05/2006
De:
Contributions: 21
LOKI2006 Post√© le: 07/06/2007 19:26  Mis √† jour: 07/06/2007 19:26
 Re: XOOPS et mod_security
C'est écrit dans l'article: eukhost.com (un hébergeur anglais), mais ça peut arriver chez n'importe quel hébergeur, en fonction de leur paramétrage de mod_security, si ce module est installé.

mod_security est à Apache ce que Protector est à XOOPS, donc assez répandu.
Team FrXoops
Inscrit le: 14/05/2004
De:
Contributions: 1990
JJDai Post√© le: 11/06/2007 10:36  Mis √† jour: 11/06/2007 10:36
 Re: XOOPS et mod_security
Merci, car pour certain qui ne maitrise pas (je parle pour moi) ca peut même être des jours de passé.
Ca été mon cas en essayant de créer un module, le nom des options dans xoops_version est limité à 30 caractères et c'est dit nulle part, sauf dans la table qui les stocke, du coup ca se mélangeait les crayons avec les options dont les 30 premiers caractères étaient identiques.
Propulsé avec XOOPS | Graphisme adapté par Tatane, Grosdunord, Montuy337513

74 Personne(s) en ligne (1 Personne(s) connectée(s) sur Articles) | Utilisateur(s): 0 | Invité(s): 74 | Plus ...