Come posso determinare programmaticamente la versione Joomla di un sito Web su cui non ho privilegi di amministrazione?


10

Sto creando uno strumento di controllo tramite PHP in cui posso inviare l'URL di un sito Web Joomla ed eseguire una serie di controlli sul sito Web di destinazione, incluso determinare il numero di versione di Joomla installato. Non ho alcun privilegio di amministrazione sul sito Web Joomla di destinazione o sul server su cui risiede.

Qualcuno può dirmi quali file e quali contenuti del file devo controllare per poter prevedere con sicurezza la versione di Joomla installata senza avere privilegi di amministrazione sul sito Web di Joomla di destinazione?

Sono interessato non solo a sapere se il sito Web è Joomla 2.5 (ad esempio), ma anche se è Joomla 2.5.18 o 2.5.19 ecc., Quindi so se è ben mantenuto o meno.


Lo stai facendo dallo script esterno?
Dmitry Rekun,

1
Sto usando il commento perché non è una vera risposta tecnica, ma se vuoi solo il numero di base 1.5, 2.5, 3.x allora puoi provare a visualizzare l'amministratore e vedere il colore o lo stile della pagina di amministrazione. È così che posso individuare facilmente un sito 1.5.
Brian Peat,

Sì. Il modulo e lo script verranno eseguiti su un sito Web Joomla e proveranno ad analizzare un sito Web Joomla non correlato.
Neil Robertson,

Grazie Brian, questo mi spinge a chiarire un po 'la domanda.
Neil Robertson,

Vedi anche joomla.stackexchange.com/a/7187/120, pubblicato da @Lodder
Neil Robertson il

Risposte:


9

Penso che devi scaricare e installare tutte le versioni di Joomla e controllare quali file sono unici.

Un buon punto di partenza sono anche i file index.html nelle diverse versioni di Joomla, c'è stato un cambiamento nel contenuto iirc.

Sulla base del commento di @ brian-a-peat puoi controllare il colore della sezione admin.

questo è forse l'approccio migliore per controllare il checksum dei file CSS ad esempio.

Prossima modifica, bene l'XML ti darebbe davvero un buon punto di partenza purché non sia bloccato.

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

3
I file XML nelle estensioni sono probabilmente uno dei modi più accurati per determinare le differenze di versione. Tuttavia, è possibile che alcuni host li blocchino con htaccess, quindi avrai ancora bisogno di una sorta di piano B.
Andrew Eddie,

1
Hai ragione Andrew, c'è una domanda su questo joomla.stackexchange.com/questions/148/… così puoi anche controllare i file della lingua, lì trovi la data di copyright che può aiutarti a indovinare la versione.
Harald Leithner,

Grazie Andrew, questo aiuta! Non mi aspetto di ricevere una precisione del 100%, ad esempio quando i file XML del sito vengono bloccati tramite .htaccess
Neil Robertson,

1
Quindi administrator / manifestests / libraries / joomla.xml potrebbe aiutarti.
Harald Leithner,

4

C'è un bell'articolo su Gavick riguardo a questo:

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

che porta a questo plugin per Chrome:

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

Che ho appena installato ... fa totalmente quello che vuoi. C'è un piccolo logo Joomla nella barra degli indirizzi e se fai clic su di esso, ti dice la versione di Joomla che è in esecuzione.


Grazie Brian, l'articolo Gavick è esattamente il tipo di informazioni che sto cercando, anche se mancano le ultime informazioni per Joomla 3.x. C'è anche un componente aggiuntivo "Joomla Version Check" per FireFox che funziona bene e lo sto già utilizzando, ma idealmente sono desideroso di sviluppare la mia soluzione in modo da poter inserire un batch di URL e controllare alcune altre cose allo stesso tempo.
Neil Robertson,

4

La versione è memorizzata all'interno della JVersionclasse. È /libraries/cms/version/version.phpcosì, forse potresti analizzarlo in qualche modo.


4
Non funzionerebbe perché non otterrà il contenuto dall'esterno.
Harald Leithner,

1

Potresti scegliere di concentrarti sulle date piuttosto che sulle versioni in quanto tali. Ad esempio, se si osserva la data di modifica nelle intestazioni per un file statico comune (ad esempio, è possibile che si scelga il file di script jquery), è probabile che indichi efficacemente quando quel file è stato installato o impacchettato. Puoi confrontarlo con la data corrente e / o la data dell'ultima versione di sicurezza per avere una buona idea dello stato di manutenzione del sito.

Esistono diversi modi in cui è possibile impostare la data del file, quindi questo non è affidabile, ma è per lo più piuttosto buono e ha il vantaggio di essere applicabile a molti diversi tipi di server e software.


1

Puoi controllare i file predefiniti sull'installazione joomla locale / remota su

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

Queste cartelle contengono aggiornamenti SQL che aiuteranno a rilevare le impronte digitali della versione.

Ad esempio: Joomla 3.8.3 avrà tutti gli aggiornamenti sql per le versioni precedenti fino al

3.8.2-2017-10-14.sql

allo stesso modo, per la versione 3.4.3

3.4.0-2015-02-26.sql

se si desidera eseguire brute-force per identificare la versione, di seguito è riportato un elenco di file sql su cui si potrebbe voler eseguire:

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

Questo potrebbe non darti la versione esatta ma atleast ti aiuta a identificare la versione principale.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.