Como posso determinar programaticamente a versão do Joomla de um site no qual não tenho privilégios de administração?


10

Estou criando uma ferramenta de auditoria usando PHP, onde posso enviar o URL de um site do Joomla e executar várias verificações no site de destino, incluindo a determinação do número da versão do Joomla instalado. Não tenho privilégios de administração no site de destino do Joomla ou no servidor em que ele reside.

Alguém pode me dizer quais arquivos e conteúdo do arquivo eu preciso verificar para poder prever com segurança a versão do Joomla instalada sem ter privilégios de administração no site Joomla de destino?

Estou interessado não apenas em saber se o site é o Joomla 2.5 (por exemplo), mas também se é o Joomla 2.5.18 ou 2.5.19 etc, por isso sei se ele está sendo bem mantido ou não.


Você está fazendo isso a partir do script externo?
Dmitry Rekun

1
Estou usando o comentário porque não é uma resposta técnica verdadeira, mas se você deseja apenas o número base 1.5, 2.5, 3.x, pode tentar visualizar o administrador e ver a cor ou o estilo da página de administrador. É assim que consigo identificar um site 1.5 facilmente.
Brian Peat

Sim. O formulário e o script serão executados em um site do Joomla e tentarão analisar um site não relacionado do Joomla.
Neil Robertson

Obrigado Brian, isso me leva a esclarecer um pouco a pergunta.
Neil Robertson

Veja também joomla.stackexchange.com/a/7187/120 postado por @Lodder
Neil Robertson

Respostas:


9

Eu acho que você precisa baixar e instalar todas as versões do Joomla e verificar quais arquivos são únicos.

Também é um bom ponto de partida os arquivos index.html nas diferentes versões do Joomla, houve uma alteração no conteúdo do iirc.

Com base no comentário de @ brian-a-peat, você pode verificar a cor da seção de administrador.

talvez seja a melhor abordagem para verificar a soma de verificação dos arquivos css, por exemplo.

Na próxima edição, o XML realmente forneceria um bom ponto de partida, desde que não esteja bloqueado.

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

3
Os arquivos XML nas extensões são provavelmente uma das maneiras mais precisas de determinar as diferenças de versão. No entanto, é possível que alguns anfitriões bloquear os para baixo com htaccess assim você ainda vai precisar de algum tipo de plano B.
Andrew Eddie

1
Você está certo, Andrew, há uma pergunta sobre este joomla.stackexchange.com/questions/148/… para que você também possa verificar os arquivos de idiomas, lá encontra a data de direitos autorais que pode ajudar a adivinhar a versão.
Harald Leithner

Obrigado Andrew, isso ajuda! Eu não estou esperando para receber 100% de precisão por exemplo, quando os arquivos XML do site são bloqueados via .htaccess
Neil Robertson

1
Portanto, o administrador / manifestos / bibliotecas / joomla.xml pode ajudá-lo.
Harald Leithner

4

Há um bom artigo sobre Gavick sobre isso:

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

o que leva a este plug-in para o Chrome:

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

Que acabei de instalar ... faz totalmente o que você deseja. Há um pequeno logotipo do Joomla na barra de endereços e, se você clicar nele, informa a versão do joomla que está sendo executada.


Obrigado Brian, o artigo da Gavick é exatamente o tipo de informação que estou procurando, embora esteja faltando as informações mais recentes do Joomla 3.x. Há também um complemento "Joomla Version Check" para FireFox que funciona bem e eu já estou usando, mas, idealmente, estou interessado em desenvolver minha própria solução para poder inserir um lote de URLs e verificar outras coisas ao mesmo tempo.
Neil Robertson

4

A versão é armazenada dentro da JVersionclasse. É /libraries/cms/version/version.phpassim que você pode analisá-lo de alguma forma.


4
Não funcionaria porque ele não receberá o conteúdo de extern.
precisa saber é o seguinte

1

Você pode optar por se concentrar nas datas, e não nas versões em si. Por exemplo, se você observar a data de modificação nos cabeçalhos de um arquivo estático comum (por exemplo, talvez você possa escolher o arquivo de script jquery), é provável que ele informe efetivamente quando esse arquivo foi instalado ou empacotado. Você pode comparar isso com a data atual e / ou a data da última versão de segurança para obter uma boa idéia do status de manutenção do site.

Há várias maneiras pelas quais a data do arquivo pode ser definida, portanto isso não é 100 confiável, mas geralmente é muito bom e tem a vantagem de ser aplicável a vários tipos diferentes de servidores e software.


1

Você pode verificar os arquivos padrão na instalação local / remota do joomla em

/ administrator / components / com_admin / sql / updates / sqlazure / administrator / components / com_admin / sql / updates / mysql / administrator / components / com_admin / sql / updates / postgresql

Essas pastas contêm atualizações SQL que ajudarão na impressão digital da versão.

Por exemplo: o Joomla 3.8.3 terá todas as atualizações sql para versões anteriores até

3.8.2-2017-10-14.sql

da mesma forma, para a versão 3.4.3

3.4.0-2015-02-26.sql

se você deseja executar força bruta para identificar a versão, a seguir está a lista de arquivos sql nos quais você pode querer executar:

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-19.sql 2.5.0-2011-12-20.sql 2.5.0-2011-12-19.sql 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

Isso pode não fornecer a versão exata, mas pelo menos ajuda a identificar a versão principal.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.