Je crée un outil d'audit en utilisant PHP) où je peux soumettre l'URL d'un site Web Joomla et effectuer un certain nombre de contrôles sur le site Web cible, notamment pour déterminer le numéro de version de Joomla installé. Je n'ai pas les privilèges d’administration sur le site Web Joomla cible ou sur le serveur sur lequel il réside.
Quelqu'un peut-il me dire quels fichiers et quel contenu de fichier je dois vérifier pour pouvoir prédire en toute confiance la version de Joomla installée sans disposer de privilèges d'administration sur le site Web cible de Joomla?
Je suis intéressé non seulement à savoir si le site Web est Joomla 2.5 (par exemple), mais aussi s'il s'agit de Joomla 2.5.18 ou 2.5.19, etc., de sorte que je sais s'il est bien entretenu ou non.
Je pense que vous devez télécharger et installer toutes les versions de Joomla et vérifier quels fichiers sont uniques.
Les fichiers index.html des différentes versions de Joomla constituent également un bon point de départ. Il y a eu une modification du contenu iirc.
Sur la base du commentaire de @ brian-a-peat, vous pouvez vérifier la couleur de la section admin.
c’est peut-être la meilleure approche pour vérifier la somme de contrôle des fichiers CSS par exemple.
Lors de la prochaine édition, le code XML vous donnerait un bon point de départ, à condition qu'il ne soit pas bloqué.
for Joomla >=1.6 ?
administrator/manifests/libraries/joomla.xml
for Joomla <= 1.5
you could check some other xml files.
Il y a un bel article sur Gavick à ce sujet:
https://www.gavick.com/magazine/how-to-check-the-version-of-joomla.html
qui mène à ce plugin pour Chrome:
https://chrome.google.com/webstore/detail/joomla-version-check/nfbncfldblphagigkamkhnjnhjkdlnii
Ce que je viens d'installer ... ça fait tout ce que tu veux. Il y a un petit logo Joomla dans la barre d'adresse et si vous cliquez dessus, il vous indique la version de joomla en cours d'exécution.
La version est stockée dans la classe JVersion
. C'est dedans /libraries/cms/version/version.php
donc vous pouvez l’analyser d’une manière ou d’une autre.
Vous pouvez vérifier les fichiers par défaut sur l’installation joomla locale/distante à l’adresse suivante:
/ administrateur/composants/com_admin/sql/mises à jour/sqlazure/administrateur/composants/com_admin/sql/mises à jour/mysql/administrateur/composants/com/admin/sql/mises à jour/postgresql
Ces dossiers contiennent des mises à jour SQL qui vous aideront à identifier la version.
Par exemple: Joomla 3.8.3 aura toutes les mises à jour SQL des versions précédentes jusqu'au
3.8.2-2017-10-14.sql
de même, pour la version 3.4.3
3.4.0-2015-02-26.sql
si vous voulez exécuter brute-force pour identifier la version, voici la liste des fichiers SQL sur lesquels vous pouvez exécuter:
2.5.0-2011-12-06.sql 2.5.0-2011-12-16.sql 2.5.0-2011-12-19.sql 2.5.0-2011-12-20.sql 2.5.0-2011- 12-21-1.sql 2.5.0-2011-12-21-2.sql 2.5.0-2011-12-22.sql 2.5.0-2011-12-23.sql 2.5.0-2011-12- 24.sql 2.5.0-2012-01-10.sql 2.5.0-2012-01-14.sql 2.5.1-2012-01-26.sql 2.5.2-2012-03-05.sql 2.5.3 -2012-03-13.sql 2.5.4-2012-03-18.sql 2.5.4-2012-03-19.sql 2.5.5.sql 2.5.6.sql 2.5.7.sql 3.0.0.sql 3.0.1.sql 3.0.2.sql 3.0.3.sql 3.1.0.sql 3.1.1.sql 3.1.2.sql 3.1.3.sql 3.1.4.sql 3.1.5.sql 3.2.0.sql 3.2.1.sql 3.2.2-2013-12-22.sql 3.2.2-2013-12-28.sql 3.2.2-2014-01-08.sql 3.2.2-2014-01-15.sql 3.2 .2-2014-01-18.sql 3.2.2-2014-01-23.sql 3.2.3-2014-02-20.sql 3.3.0-2014-02-16.sql 3.3.0-2014-04 -02.sql 3.3.4-2014-08-03.sql 3.3.6-2014-09-30.sql 3.4.0-2014-08-24.sql 3.4.0-2014-09-01.sql 3.4. 0-2014-09-16.sql 3.4.0-2014-10-20.sql 3.4.0-2014-12-03.sql 3.4.0-2015-01-21.sql 3.4.0-2015-02- 26.sql 3.5.0-2015-07-01.sql 3.5.0-2015-10-13.sql 3.5.0-2015-10-26.sql 3.5.0-2015-10-30.sql 3.5.0 -2015-11-04.sql 3.5.0-2015-11-05.sql 3.5.0- 2016-02-26.sql 3.5.0-2016-03-01.sql 3.5.1-2016-03-25.sql 3.5.1-2016-03-29.sql 3.6.0-2016-04-01. sql 3.6.0-2016-04-06.sql 3.6.0-2016-04-08.sql 3.6.0-2016-04-09.sql 3.6.0-2016-05-06.sql 3.6.0-2016 -06-01.sql 3.6.0-2016-06-05.sql 3.6.3-2016-08-15.sql 3.6.3-2016-08-16.sql 3.7.0-2016-08-06.sql 3.7.0-2016-08-22.sql 3.7.0-2016-08-29.sql 3.7.0-2016-09-29.sql 3.7.0-2016-10-01.sql 3.7.0-2016- 10-02.sql 3.7.0-2016-11-04.sql 3.7.0-2016-11-19.sql 3.7.0-2016-11-21.sql 3.7.0-2016-11-24.sql 3,7 .0-2016-11-27.sql 3.7.0-2017-01-08.sql 3.7.0-2017-01-09.sql 3.7.0-2017-01-15.sql 3.7.0-2017-01 -17.sql 3.7.0-2017-01-31.sql 3.7.0-2017-02-02.sql 3.7.0-2017-02-15.sql 3.7.0-2017-02-17.sql 3.7. 0-2017-03-03.sql 3.7.0-2017-03-09.sql 3.7.0-2017-03-19.sql 3.7.0-2017-04-10.sql 3.7.0-2017-04- 19.sql 3.7.3-2017-06-03.sql 3.7.4-2017-07-05.sql 3.8.0-2017-07-28.sql 3.8.0-2017-07-31.sql 3.8.2 -2017-10-14.sql
Cela ne vous donnera peut-être pas la version exacte, mais au moins vous aidera-t-il à identifier la version principale.
Vous pouvez choisir de vous concentrer sur les dates plutôt que sur les versions en tant que telles. Par exemple. Si vous regardez la date de modification dans les en-têtes pour un fichier statique commun (vous pouvez par exemple choisir le fichier de script jQuery), il est probable que le système vous indiquera quand ce fichier a été installé ou empaqueté. Vous pouvez comparer cela à la date actuelle et/ou à la date de la dernière mise à jour de sécurité pour avoir une assez bonne idée de l'état de maintenance du site.
La date du fichier peut être réglée de différentes manières. Elle n'est donc pas fiable à 100%, mais plutôt bonne, et présente l'avantage d'être applicable à de nombreux types de serveurs et de logiciels.