Joomla est le deuxième CMS le plus populaire pour un site web, avec plus de 4,5 % de parts de marché et une croissance continue.
La sécurité est aussi importante que la conception et le contenu d’un site web, mais nous l’ignorons souvent jusqu’à ce qu’elle subisse des conséquences négatives. Un serveur Joomla mal configuré/durci peut être vulnérable à de nombreux risques, notamment l’exécution de code à distance, l’injection SQL, le Cross-Site Scripting, la fuite d’informations, etc.
La sécurité est un cycle de processus, que l’on devrait toujours effectuer contre les applications web. Dans cet article, je vous parlerai des outils permettant d’analyser les vulnérabilités du site web Joomla afin de le protéger contre le mal.
Cible des pirates
L’analyse de sécurité de Joomla par Hacker Target a deux options.
Analysepassive – il s’agit d’une analyse GRATUITE, qui effectue les opérations suivantes.
- Recherche de navigation sécurisée dans Google
- Recherche dans l’index des répertoires
- Liens externes et leur réputation sur le web
- Liste des iFrames externes, JavaScript
- Recherche de géolocalisation et d’hébergement web
Analyse active etagressive– elle nécessite une adhésion et une vérification agressive pour détecter les exploits et les vulnérabilités connus dans les thèmes, les extensions, les modules, les composants et le noyau de Joomla.
SiteGuarding
SiteGuarding est un scanner de sécurité de site web basé sur le cloud qui fournit également une extension Joomla pour analyser votre site web.
Dans la version GRATUITE de l’extension, vous bénéficiez de ce qui suit.
- Analyse jusqu’à 500 fichiers
- Mise à jour quotidienne de la base de données virale
- Rapport
- Une analyse par jour
- Logique heuristique
Vous pouvez également essayer leur extension Antivirus Scanner.
Detectify
Detectify est un scanner SaaS prêt à l’emploi pour l’audit complet de sites web avec plus de 1000 vulnérabilités, y compris le top 10 de l’OWASP. Il effectue des contrôles de sécurité sur des CMS tels que Joomla, WordPress, Drupal, etc. pour s’assurer que les vulnérabilités spécifiques aux CMS sont couvertes.
Il n’est pas entièrement gratuit, mais vous pouvez profiter de leur offre d’essai pour voir comment il fonctionne.
JAMSS
JAMSS (Joomla Anti Malware Scan Script) est un script que vous devez installer à la racine de votre site web.
L’installation du script n’est rien d’autre que le téléchargement du fichier jamss.php
à la racine de votre site web. JAMSS identifie les empreintes typiques, les traces qui pourraient avoir été compromises. Le script n’endommage rien et pour accéder au rapport d’analyse, il vous suffit d’accéder à yourwebsite.com/jamss.php
SUCURI
Site Check by SUCURI vérifie la présence de logiciels malveillants connus, de listes noires, de SPAM, de défigurations et vous donne des informations sur un serveur web, des liens et des scripts inclus.
Contrôle de sécurité
L’extensionSecurity Check protège votre site web contre plus de 90 modèles d’attaques, et dispose d’un contrôle de vulnérabilité intégré pour tester les extensions installées afin de détecter tout risque de sécurité.
Joomscan
Joomscan est l’un des outils open-source les plus populaires pour vous aider à trouver les vulnérabilités connues du noyau de Joomla, des composants, de l’injection SQL et de l’exécution de commandes. Il y a deux façons de faire fonctionner cet outil.
- Téléchargez-le depuis le site de l’OWASP et installez-le sur votre PC
- Utilisez Kali Linux qui est livré avec plus de 600 outils, dont Joomscan
Une fois Joomscan installé, voici comment l’exécuter sur le site Joomla pour analyser la vulnérabilité.
./joomscan -u http://joomlawebsite.com
Ex, j’ai exécuté mon site de test.
root@Chandan:~# joomscan -oh -u http://techpostal.com
..|''|| '|| '||' '|' | .|'''.| '||''|.
.|' || '|. '|. .' ||| ||.. ' || ||
|| || || || | | || ''|||. ||...|'
'|. || ||| ||| .''''|. . '|| ||
''|...|' | | .|. .||. |'....|' .||.
=================================================================
OWASP Joomla ! Vulnerability Scanner v0.0.4
(c) Aung Khant, aungkhant]at[yehg.net
YGN Ethical Hacker Group, Myanmar, http://yehg.net/lab
Mise à jour par : Web-Center, http://web-center.si (2011)
=================================================================
Entrées de vulnérabilité : 611
Dernière mise à jour : 2 février 2012
Utilisez l'option "update" pour mettre à jour la base de données
Utilisez l'option "check" pour vérifier la mise à jour du scanner
Utilisez l'option "download" pour télécharger le paquetage de la dernière version du scanner
Utilisez svn co pour mettre à jour le scanner et la base de données
svn co https://joomscan.svn.sourceforge.net/svnroot/joomscan joomscan
Cible : http://techpostal.com
Serveur : Apache
X-Powered-By : PHP/5.4.45
## Vérifier si la cible a déployé une mesure anti-scanner
[ !] Analyse réussie ..... OK
## Détection d'un pare-feu basé sur Joomla !
[ !] Aucun pare-feu connu n'a été détecté !
## Fingerprinting en cours ...
Utilisation d'une valeur non initialisée dans la recherche de motifs (m//) dans ./joomscan.pl ligne 1009.
~Impossible de détecter la version. Est-ce bien un Joomla ?
## L'empreinte digitale est faite.
Vulnérabilités découvertes
==========================
# 1
Info -> Générique : htaccess.txt n'a pas été renommé.
Versions affectées : Toutes
Vérifiez : /htaccess.txt
Exploitation : Les défenses génériques implémentées dans .htaccess ne sont pas disponibles, donc l'exploitation est plus susceptible de réussir.
Vulnérable ? Oui
# 2
Info -> Générique : Répertoire administrateur non protégé
Versions affectées : Toutes
Vérifiez : /administrator/
Exploit : Le répertoire par défaut /administrator est détecté. Les attaquants peuvent forcer brutalement les comptes administrateurs. Lisez : http://yehg.net/lab/pr0js/view.php/MULTIPLE TRICKY WAYS TO PROTECT.pdf (en anglais)
Vulnérable ? Oui
# 3
Info -> Core : Vulnérabilité XSS/CSRF multiple
Versions concernées : 1.5.9 <=
Vérifier : /?1.5.9-x
Exploitation : Une série de failles XSS et CSRF existent dans l'application administrateur. Les composants administrateurs affectés sont com_admin, com_media, com_search. Les deux composants com_admin et com_search contiennent des vulnérabilités XSS, et com_media contient 2 vulnérabilités CSRF.
Vulnérable ? N.D.A
# 4
Info -> Core : Vulnérabilité de divulgation de session SSL JSession
Versions concernées : Joomla ! 1.5.8 <=
Vérifiez : /?1.5.8-x
Exploitation : Lors de l'exécution d'un site sous SSL (le site entier est forcé d'être sous SSL), Joomla ! ne définit pas le drapeau SSL sur le cookie. Cela peut permettre à quelqu'un qui surveille le réseau de trouver le cookie lié à la session.
Vulnérable ? N/A
# 5
Info -> Core : Vulnérabilité XSS du frontend
Versions concernées : 1.5.10 <=
Vérifiez : /?1.5.10-x
Exploitation : Certaines valeurs sont sorties de la base de données sans être correctement échappées. La plupart des chaînes de caractères en question proviennent du panneau de l'administrateur. Un administrateur normal malveillant peut s'en servir pour obtenir l'accès au super administrateur.
Vulnérable ? N/A
# 6
Info -> Core : Frontend XSS - Vulnérabilité HTTP_REFERER mal filtrée
Versions concernées : 1.5.11 <=
Vérifiez : /?1.5.11-x-http_ref
Exploitation : Un attaquant peut injecter du code JavaScript ou DHTML qui sera exécuté dans le contexte du navigateur de l'utilisateur ciblé, permettant à l'attaquant de voler des cookies. La variable HTTP_REFERER n'est pas correctement analysée.
Vulnérable ? N/A
# 7
Info -> Core : Frontend XSS - PHP_SELF n'est pas correctement filtré Vulnérabilité
Versions concernées : 1.5.11 <=
Vérifiez : /?1.5.11-x-php-s3lf
Exploit : Un attaquant peut injecter du code JavaScript dans une URL qui sera exécutée dans le contexte du navigateur de l'utilisateur ciblé.
Vulnérable ? N/A
# 8
Info -> Core : Vulnérabilité de contournement d'authentification
Versions concernées : Joomla ! 1.5.3 <=
Vérifiez : /administrator/
Exploit : Le backend accepte n'importe quel mot de passe pour le super administrateur personnalisé lorsque le LDAP est activé
Vulnérable ? N/A
# 9
Info -> Core : Vulnérabilité de divulgation de chemin
Versions concernées : Joomla ! 1.5.3 <=
Vérifiez : /?1.5.3-path-disclose
Exploitation : L'URL construite peut divulguer le chemin d'accès absolu
Vulnérable ? N/A
# 10
Info -> Core : Vulnérabilité de spamming par redirection de l'utilisateur
Versions concernées : Joomla ! 1.5.3 <=
Vérifiez : /?1.5.3-spam
Exploit : Spam de redirection d'utilisateur
Vulnérable ? N/A
# 11
Info -> Core : Vulnérabilité Cross Site Request Forgery du backend de l'Admin
Versions concernées : 1.0.13 <=
Vérifiez : /administrator/
Exploitation : Il faut qu'un administrateur soit connecté et qu'il soit piégé dans une page web spécialement conçue.
Vulnérable ? N/A
# 12
Info -> CoreComponent : com_content Vulnérabilité d'injection SQL
Version affectée : Joomla ! 1.0.0 <=
Vérifiez : /components/com_content/
Exploit : /index.php?option=com_content&task=blogcategory&id=60&Itemid=99999 UNION SELECT 1,concat(0x1e,username,0x3a,password,0x1e,0x3a,usertype,0x1e),3,4,5 FROM jos_users where usertype=0x53757065722041646d696e6973747261746f72--
Vulnérable ? Non
# 13
Info -> CoreComponent : com_search Vulnérabilité d'exécution de code à distance
Version affectée : Joomla ! 1.5.0 beta 2 <=
Vérifiez : /components/com_search/
Exploit : /index.php?option=com_search&Itemid=1&searchword=";echo md5(911) ;
Vulnérable ? Non
# 14
Info -> CoreComponent : Vulnérabilité d'injection SQL dans MailTo
Versions concernées : N/A
Vérifiez : /components/com_mailto/
Exploiter : /index.php?option=com_mailto&tmpl=mailto&article=550513 and 1=2 union select concat(username,char(58),password) from jos_users where usertype=0x53757065722041646d696e6973747261746f72--&Itemid=1
Vulnérable ? Non
# 15
Info -> CoreComponent : com_content Vulnérabilité d'injection SQL aveugle
Versions concernées : Joomla ! 1.5.0 RC3
Vérifiez : /components/com_content/
Exploit : /index.php?option=com_content&view=%' 'a'='a&id=25&Itemid=28
Vulnérable ? Non
# 16
Info -> CoreComponent : com_content Vulnérabilité XSS
Version affectée : Joomla ! 1.5.7 <=
Vérifiez : /components/com_content/
Exploit : Les valeurs par défaut de la soumission d'article com_content permettent l'entrée de balises HTML dangereuses (script, etc). Ceci n'affecte que les utilisateurs ayant un niveau d'accès Author ou supérieur, et seulement si vous n'avez pas défini d'options de filtrage dans la configuration de com_content.
Vulnérable ? N/A
# 17
Info -> CoreComponent : com_mailto Vulnérabilité de spam par email
Version affectée : Joomla ! 1.5.6 <=
Vérifiez : /composants/com_mailto/
Exploit : Le composant mailto ne vérifie pas la validité de l'URL avant l'envoi.
Vulnérable ? N/A
# 18
Info -> CoreComponent : com_content view=archive Vulnérabilité d'injection SQL
Versions concernées : Joomla ! 1.5.0 Beta1/Beta2/RC1
Vérifiez : /components/com_content/
Exploit : Vars POST non filtrées - filter, month, year vers /index.php?option=com_content&view=archive
Vulnérable ? Non
# 19
Info -> CoreComponent : com_content Vulnérabilité XSS
Version affectée : Joomla ! 1.5.9 <=
Vérifiez : /components/com_content/
Exploit : Une vulnérabilité XSS existe dans la vue des catégories de com_content.
Vulnérable ? N/A
# 20
Info -> CoreComponent : com_users Vulnérabilité XSS
Version affectée : Joomla ! 1.5.10 <=
Vérifiez : /composants/com_users/
Exploitation : Une vulnérabilité XSS existe dans la vue utilisateur de com_users dans le panneau administrateur.
Vulnérable ? N/A
# 21
Info -> CoreComponent : com_installer Vulnérabilité CSRF
Versions concernées : Joomla ! 1.5.0 Beta
Vérifier : /administrator/components/com_installer/
Exploit : N/A
Vulnérable ? N/A
# 22
Info -> CoreComponent : com_search Consommation de mémoire Vulnérabilité DoS
Versions concernées : Joomla ! 1.5.0 Beta
Vérifier : /components/com_search/
Exploit : N/A
Vulnérable ? Non
# 23
Info -> CoreComponent : com_banners Vulnérabilité d'injection SQL aveugle
Versions concernées : N/A
Vérifiez : /components/com_banners/
Exploiter : /index.php?option=com_banners&task=archivesection&id=0' et '1'='1::/index.php?option=com_banners&task=archivesection&id=0' et '1'='2
Vulnérable ? Non
# 24
Info -> CoreComponent : Vulnérabilité du délai d'attente de com_mailto
Versions concernées : 1.5.13 <=
Vérifiez : /components/com_mailto/
Exploit : [Requiert un compte utilisateur valide] Dans com_mailto, il était possible de contourner la protection du délai d'attente contre l'envoi d'emails automatisés.
Vulnérable ? SANS OBJET
Comme vous pouvez le voir ci-dessus dans les résultats, il recherche plus de 20 vulnérabilités et vous informe si l’une d’entre elles est trouvée afin que vous puissiez la corriger et sécuriser Joomla.
Pentest-Tools
Joomla Vulnerability Scan de Pentest-Tools est alimenté par l’outil JoomlaVS.
Vous pouvez exécuter ce test sur votre site pour savoir rapidement si le noyau, les modèles et les modules sont vulnérables. Une fois le test terminé, il génère un magnifique rapport contenant tous les détails de la découverte. C’est comme effectuer un test de pénétration.
Conclusion
J’espère que les outils ci-dessus vous aideront à scanner les vulnérabilités de Joomla et à garder votre site web sûr et sécurisé. Voici quelques ressources utiles pour vous tenir au courant de la sécurité.
- Liste des extensions vulnérables de Joomla – http://vel.joomla.org/
- Détails CVE Joomla – http://www.cvedetails.com/vulnerability-list/vendor_id-3496/product_id-16499/Joomla-Joomla-.html
- Réseau des développeurs de Joomla (centre de sécurité) – http://developer.joomla.org/security-centre.html
- Documentation sur la sécurité de Joomla – https://docs.joomla.org/Security
- Outils d’analyse de la sécurité des sites web – https://geekflare.com/fr/cybersecurity/best-website-security-scanner/
- Meilleures pratiques de sécurité pour Joomla – https://geekflare.com/fr/joomla-security/