Wie kann ich programmgesteuert die Joomla-Version einer Website ermitteln, für die ich keine Administratorrechte habe?

10

Ich erstelle ein Audit-Tool mit PHP, mit dem ich die URL einer Joomla-Website übermitteln und eine Reihe von Überprüfungen auf der Zielwebsite durchführen kann, einschließlich der Ermittlung der installierten Joomla-Versionsnummer. Ich habe keine Administrationsrechte auf der Joomla-Zielwebsite oder dem Server, auf dem sie sich befindet.

Kann mir jemand sagen, welche Dateien und Dateiinhalte ich überprüfen muss, um die installierte Joomla-Version sicher vorhersagen zu können, ohne über Administratorrechte auf der Joomla-Zielwebsite zu verfügen?

Ich bin nicht nur daran interessiert zu wissen, ob es sich bei der Website um Joomla 2.5 handelt (zum Beispiel), sondern auch darum, ob es sich um Joomla 2.5.18 oder 2.5.19 usw. handelt, damit ich weiß, ob sie gut gepflegt wird oder nicht.

Neil Robertson
quelle
Sie machen es aus dem externen Skript?
Dmitry Rekun
1
Ich verwende den Kommentar, weil er keine echte technische Antwort ist. Wenn Sie jedoch nur die Basisnummer 1.5, 2.5, 3.x möchten, können Sie versuchen, den Administrator anzuzeigen und die Farbe oder den Stil der Administrationsseite anzuzeigen. So kann ich eine 1.5-Site leicht erkennen.
Brian Peat
Ja. Das Formular und das Skript werden auf einer Joomla-Website ausgeführt und versuchen, eine nicht verwandte Joomla-Website zu analysieren.
Neil Robertson
Danke Brian, das veranlasst mich, die Frage ein wenig zu klären.
Neil Robertson
Siehe auch joomla.stackexchange.com/a/7187/120 gepostet von @Lodder
Neil Robertson

Antworten:

9

Ich denke, Sie müssen alle Joomla-Versionen herunterladen und installieren und prüfen, welche Dateien eindeutig sind.

Ein guter Ausgangspunkt sind auch die index.html-Dateien in den verschiedenen Joomla-Versionen, es gab eine Änderung des Inhalts iirc.

Basierend auf dem Kommentar von @ brian-a-peat können Sie die Farbe des Admin-Abschnitts überprüfen.

Das ist vielleicht der beste Ansatz, um zum Beispiel die Prüfsumme der CSS-Dateien zu überprüfen.

Bei der nächsten Bearbeitung würde Ihnen das XML wirklich einen guten Ausgangspunkt bieten, solange es nicht blockiert ist.

for Joomla >=1.6 ?
administrator/manifests/libraries/joomla.xml
for Joomla <= 1.5
you could check some other xml files.
Harald Leithner
quelle
3
Die XML-Dateien in Erweiterungen sind wahrscheinlich eine der genauesten Methoden zum Ermitteln von Versionsunterschieden. Es ist jedoch möglich, dass einige Hosts diese mit htaccess sperren, sodass Sie immer noch einen Plan B benötigen.
Andrew Eddie
1
Sie haben Recht, Andrew. Es gibt eine Frage zu joomla.stackexchange.com/questions/148/…. Sie können also auch die Sprachdateien überprüfen. Dort finden Sie das Copyright-Datum, anhand dessen Sie die Version erraten können.
Harald Leithner
Danke Andrew, das hilft! Ich erwarte keine 100% ige Genauigkeit, z. B. wenn Site-XML-Dateien über .htaccess gesperrt werden
Neil Robertson
1
Administrator / manifestes / library / joomla.xml könnte Ihnen also helfen.
Harald Leithner
4

Es gibt einen schönen Artikel über Gavick dazu:

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

was zu diesem Plugin für Chrome führt:

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

Was ich gerade installiert habe ... es macht total was du willst. In der Adressleiste befindet sich ein kleines Joomla-Logo. Wenn Sie darauf klicken, wird die aktuelle Version von Joomla angezeigt.

Brian Peat
quelle
Vielen Dank, Brian. Der Gavick-Artikel ist genau die Art von Informationen, nach denen ich suche, obwohl ihm die neuesten Informationen für Joomla 3.x fehlen. Es gibt auch ein "Joomla Version Check" -Add-On für FireFox, das gut funktioniert und das ich bereits verwende. Idealerweise möchte ich jedoch meine eigene Lösung entwickeln, damit ich eine Reihe von URLs eingeben und gleichzeitig einige andere Dinge überprüfen kann.
Neil Robertson
4

Die Version wird in der JVersionKlasse gespeichert . Es ist /libraries/cms/version/version.phpso, dass Sie es irgendwie analysieren können.

Dmitry Rekun
quelle
4
Würde nicht funktionieren, weil er den Inhalt nicht von außen bekommt.
Harald Leithner
1

Sie können sich eher auf Datumsangaben als auf Versionen als solche konzentrieren. Wenn Sie sich beispielsweise das Änderungsdatum in den Headern für eine allgemeine statische Datei ansehen (z. B. können Sie die JQuery-Skriptdatei auswählen), wird Ihnen wahrscheinlich effektiv mitgeteilt, wann diese Datei installiert oder gepackt wurde. Sie können dies mit dem aktuellen Datum und / oder dem Datum der letzten Sicherheitsversion vergleichen, um eine ziemlich gute Vorstellung vom Wartungsstatus der Site zu erhalten.

Es gibt verschiedene Möglichkeiten, wie das Dateidatum festgelegt werden kann, daher ist dies nicht 100 zuverlässig, aber meistens ziemlich gut und hat den Vorteil, dass es auf viele verschiedene Arten von Servern und Software anwendbar ist.

mc0e
quelle
1

Sie können die Standarddateien in der lokalen / Remote-Joomla-Installation unter überprüfen

/ Administrator / Komponenten / com_admin / SQL / Updates / SQLlazure / Administrator / Komponenten / com_admin / SQL / Updates / MySQL / Administrator / Komponenten / com_admin / SQL / Updates / Postgresql

Diese Ordner enthalten SQL-Updates, die beim Fingerabdruck der Version helfen.

Zum Beispiel: Joomla 3.8.3 wird alle SQL-Updates für frühere Versionen bis haben

3.8.2-2017-10-14.sql

Ebenso für Version 3.4.3

3.4.0-2015-02-26.sql

Wenn Sie Brute-Force ausführen möchten, um die Version zu identifizieren, finden Sie im Folgenden eine Liste der SQL-Dateien, für die Sie möglicherweise ausführen möchten:

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

Dies gibt Ihnen möglicherweise nicht die genaue Version, aber zumindest hilft es Ihnen, die Hauptversion zu identifizieren.

Shyam Somana
quelle