¿Cómo puedo determinar programáticamente la versión de Joomla de un sitio web en el que no tengo privilegios de administración?

10

Estoy creando una herramienta de auditoría usando PHP donde puedo enviar la url de un sitio web de Joomla y ejecutar una serie de comprobaciones en el sitio web de destino, incluida la determinación del número de versión de Joomla instalado. No tengo privilegios de administración en el sitio web objetivo de Joomla o en el servidor en el que reside.

¿Alguien puede decirme qué archivos y contenido de archivos necesito verificar para poder predecir con confianza la versión de Joomla instalada sin tener ningún privilegio de administración en el sitio web de destino de Joomla?

Estoy interesado no solo en saber si el sitio web es Joomla 2.5 (por ejemplo), sino también si es Joomla 2.5.18 o 2.5.19, etc., así que sé si está bien mantenido o no.

Neil Robertson
fuente
¿Lo estás haciendo desde el script externo?
Dmitry Rekun
1
Estoy usando el comentario porque no es una verdadera respuesta técnica, pero si solo desea el número base 1.5, 2.5, 3.x, puede intentar ver el administrador y ver el color o el estilo de la página de administración. Así es como puedo detectar un sitio 1.5 fácilmente.
Brian Peat el
Si. El formulario y el script se ejecutarán en un sitio web de Joomla e intentarán analizar un sitio web no relacionado de Joomla.
Neil Robertson el
Gracias Brian, esto me lleva a aclarar un poco la pregunta.
Neil Robertson el
También vea joomla.stackexchange.com/a/7187/120 publicado por @Lodder
Neil Robertson el

Respuestas:

9

Creo que debe descargar e instalar todas las versiones de Joomla y verificar qué archivos son únicos.

También un buen punto de partida son los archivos index.html en las diferentes versiones de Joomla, hubo un cambio en el contenido de iirc.

Según el comentario de @ brian-a-peat, puede verificar el color de la sección de administración.

ese es quizás el mejor enfoque para verificar la suma de verificación de los archivos css, por ejemplo.

Siguiente edición, bueno, el XML realmente le daría un buen punto de partida siempre que no esté bloqueado.

for Joomla >=1.6 ?
administrator/manifests/libraries/joomla.xml
for Joomla <= 1.5
you could check some other xml files.
Harald Leithner
fuente
3
Los archivos XML en extensiones son probablemente una de las formas más precisas de determinar las diferencias de versión. Sin embargo, es posible que algunos hosts los bloqueen con htaccess, por lo que aún necesitará algún tipo de plan B.
Andrew Eddie
1
Tienes razón Andrew, hay una pregunta sobre este joomla.stackexchange.com/questions/148/… para que también puedas consultar los archivos de idioma, allí encontrarás la fecha de copyright que puede ayudarte a adivinar la versión.
Harald Leithner
Gracias Andrew, esto ayuda! No espero recibir una precisión del 100%, por ejemplo, cuando los archivos XML del sitio se bloquean a través de .htaccess
Neil Robertson
1
Entonces administrador / manifiestos / bibliotecas / joomla.xml podría ayudarlo.
Harald Leithner el
4

Hay un buen artículo sobre Gavick con respecto a esto:

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

que lleva a este complemento para Chrome:

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

Lo que acabo de instalar ... hace totalmente lo que quieres. Hay un pequeño logotipo de Joomla en la barra de direcciones y si hace clic en él, le indica la versión de joomla que se está ejecutando.

Brian Peat
fuente
Gracias Brian, el artículo de Gavick es exactamente el tipo de información que estoy buscando, aunque falta la información más reciente para Joomla 3.x. También hay un complemento "Joomla Version Check" para FireFox que funciona bien y ya lo estoy usando, pero idealmente estoy interesado en desarrollar mi propia solución para poder ingresar un lote de URL y verificar otras cosas al mismo tiempo.
Neil Robertson el
4

La versión se almacena dentro de la JVersionclase. Es /libraries/cms/version/version.phpasí que puede ser que pueda analizarlo de alguna manera.

Dmitry Rekun
fuente
44
No funcionaría porque no obtendrá el contenido desde el exterior.
Harald Leithner
1

Puede optar por centrarse en las fechas en lugar de las versiones como tales. Por ejemplo, si observa la fecha de modificación en los encabezados de un archivo estático común (por ejemplo, tal vez podría elegir el archivo de script jquery), es probable que le indique de manera efectiva cuándo se instaló o empaquetó ese archivo. Puede comparar eso con la fecha actual y / o la fecha de la última versión de seguridad para tener una idea bastante buena del estado de mantenimiento del sitio.

Hay una variedad de formas en que se puede configurar la fecha del archivo, por lo que esto no es 100 confiable, pero es bastante bueno y tiene la ventaja de ser aplicable en muchos tipos diferentes de servidores y software.

mc0e
fuente
1

Puede verificar los archivos predeterminados en la instalación local / remota de joomla en

/ administrador / componentes / com_admin / sql / updates / sqlazure / administrador / components / com_admin / sql / updates / mysql / administrador / components / com_admin / sql / updates / postgresql

Estas carpetas contienen actualizaciones de SQL que ayudarán a identificar la versión.

Por ejemplo: Joomla 3.8.3 tendrá todas las actualizaciones de SQL para versiones anteriores hasta

3.8.2-2017-10-14.sql

Del mismo modo, para la versión 3.4.3

3.4.0-2015-02-26.sql

si desea ejecutar fuerza bruta para identificar la versión, a continuación se muestra la lista de archivos sql con los que puede querer ejecutar:

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

Es posible que esto no le proporcione la versión exacta, pero al menos le ayuda a identificar la versión principal.

shyam somana
fuente