XOOPS et mod_security

Date 06/06/2007 | Sujet : 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.





Cet article provient de Communauté Francophone des Utilisateurs de Xoops
https://www.frxoops.org

L'adresse de cet article est :
https://www.frxoops.org/modules/news/article.php?storyid=1337