Comment déterminer par programme la version Joomla d'un site Web sur lequel je n'ai aucun privilège d'administration?


10

Je crée un outil d'audit utilisant PHP où je peux soumettre l'url d'un site Web Joomla et exécuter un certain nombre de vérifications sur le site Web cible, y compris la détermination du numéro de version Joomla installé. Je n'ai aucun privilège 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 contenus de fichiers je dois vérifier pour pouvoir prédire en toute confiance la version de Joomla installée sans avoir de privilèges d'administration sur le site Web Joomla cible?

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. Je sais donc s'il est bien entretenu ou non.


Vous le faites à partir du script externe?
Dmitry Rekun

1
J'utilise le commentaire parce que ce n'est pas une vraie réponse technique, mais si vous voulez juste le numéro de base 1.5, 2.5, 3.x, vous pouvez essayer de voir l'administrateur et voir la couleur ou le style de la page d'administration. Voilà comment je peux facilement repérer un site 1.5.
Brian Peat

Oui. Le formulaire et le script s'exécuteront sur un site Web Joomla et tenteront d'analyser un site Web Joomla non lié.
Neil Robertson

Merci Brian, cela m'incite à clarifier un peu la question.
Neil Robertson

Voir également joomla.stackexchange.com/a/7187/120 publié par @Lodder
Neil Robertson

Réponses:


9

Je pense que vous devez télécharger et installer toutes les versions de Joomla et vérifier quels fichiers sont uniques.

Un autre bon point de départ est les fichiers index.html dans les différentes versions de Joomla, il y a eu un changement 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.

Prochaine édition, bon le XML vous donnerait vraiment un bon point de départ tant qu'il n'est pas bloqué.

for Joomla >=1.6 ?
administrator/manifests/libraries/joomla.xml
for Joomla <= 1.5
you could check some other xml files.

3
Les fichiers XML dans les extensions sont probablement l'un des moyens les plus précis de déterminer les différences de version. Cependant, il est possible que certains hôtes les verrouillent avec htaccess, vous aurez donc toujours besoin d'une sorte de plan B.
Andrew Eddie

1
Vous avez raison Andrew, il y a une question à propos de ce joomla.stackexchange.com/questions/148/… afin que vous puissiez également vérifier les fichiers de langue, vous y trouverez la date de copyright qui peut aider à deviner la version.
Harald Leithner

Merci Andrew, cela aide! Je ne m'attends pas à recevoir une précision de 100%, par exemple lorsque les fichiers XML du site sont verrouillés via .htaccess
Neil Robertson

1
L'administrateur / manifestes / bibliothèques / joomla.xml pourrait donc vous aider.
Harald Leithner

4

Il y a un bel article sur Gavick à ce sujet:

https://www.gavick.com/magazine/how-to-check-the-version-of-joomla.html

ce qui conduit à ce plugin pour Chrome:

https://chrome.google.com/webstore/detail/joomla-version-check/nfbncfldblphagigkamkhnjnhjkdlnii

Ce que je viens d'installer ... il fait totalement ce que vous voulez. Il y a un petit logo Joomla dans la barre d'adresse et si vous cliquez dessus, il vous indique la version de joomla qui fonctionne.


Merci Brian, l'article Gavick est exactement le type d'informations que je recherche bien qu'il manque les dernières informations pour Joomla 3.x. Il existe également un module complémentaire "Joomla Version Check" pour FireFox qui fonctionne bien et que j'utilise déjà, mais idéalement, je souhaite développer ma propre solution afin que je puisse entrer un lot d'URL et vérifier d'autres choses en même temps.
Neil Robertson

4

La version est stockée dans la JVersionclasse. Il se /libraries/cms/version/version.phppeut que vous puissiez l'analyser d'une manière ou d'une autre.


4
Ne fonctionnerait pas car il n'obtiendrait pas le contenu de l'extérieur.
Harald Leithner

1

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 d'un fichier statique commun (par exemple, vous pouvez choisir le fichier de script jquery), il est probable que vous sachiez quand ce fichier a été installé ou empaqueté. Vous pouvez comparer cela avec la date actuelle et / ou la date de la dernière version de sécurité pour avoir une assez bonne idée de l'état de maintenance du site.

Il existe de nombreuses façons de définir la date du fichier, donc ce n'est pas fiable, mais c'est généralement assez bon, et a l'avantage d'être applicable à de nombreux types de serveurs et de logiciels.


1

Vous pouvez vérifier les fichiers par défaut sur l'installation joomla locale / distante à l'adresse

/ 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 à prendre les empreintes digitales de la version.

Par exemple: Joomla 3.8.3 aura toutes les mises à jour SQL pour les versions précédentes jusqu'à

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 souhaitez exécuter la force brute pour identifier la version, voici la liste des fichiers sql contre lesquels vous voudrez peut-être 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.qs 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 peut ne pas vous donner la version exacte mais au moins vous aide à identifier la version principale.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.