Jak mogę programowo określić wersję strony Joomla, na której nie mam uprawnień administracyjnych?

10

Tworzę narzędzie do audytu za pomocą PHP, w którym mogę przesłać adres URL strony Joomla i przeprowadzić szereg kontroli na stronie docelowej, w tym określić numer zainstalowanej wersji Joomla. Nie mam żadnych uprawnień administracyjnych na docelowej stronie Joomla lub serwerze, na którym ona się znajduje.

Czy ktoś może mi powiedzieć, które pliki i ich zawartość muszę sprawdzić, aby móc z góry przewidzieć zainstalowaną wersję Joomla bez uprawnień administratora na docelowej stronie Joomla?

Interesuje mnie nie tylko to, czy strona internetowa to Joomla 2.5 (na przykład), ale także to, czy jest to Joomla 2.5.18 lub 2.5.19 itd., Więc wiem, czy jest dobrze utrzymana, czy nie.

Neil Robertson
źródło
Robisz to z zewnętrznego skryptu?
Dmitry Rekun
1
Korzystam z komentarza, ponieważ nie jest to prawdziwa odpowiedź techniczna, ale jeśli chcesz tylko numer bazowy 1.5, 2.5, 3.x, możesz spróbować zobaczyć administratora i zobaczyć kolor lub styl strony administratora. W ten sposób mogę łatwo zlokalizować stronę 1.5.
Brian Peat
Tak. Formularz i skrypt będą działały na stronie Joomla i spróbują przeanalizować niepowiązaną stronę Joomla.
Neil Robertson,
Dzięki Brian, to skłania mnie do wyjaśnienia pytania.
Neil Robertson
Zobacz także joomla.stackexchange.com/a/7187/120 opublikowany przez @Lodder
Neil Robertson

Odpowiedzi:

9

Myślę, że musisz pobrać i zainstalować wszystkie wersje Joomla i sprawdzić, które pliki są unikalne.

Dobrym punktem wyjścia są również pliki index.html w różnych wersjach Joomla, nastąpiła zmiana treści iirc.

Na podstawie komentarza @ brian-a-peat możesz sprawdzić kolor sekcji admin.

to może być najlepsze podejście do sprawdzenia sumy kontrolnej na przykład plików css.

Następna edycja, dobrze, XML naprawdę dałby dobry punkt wyjścia, o ile nie jest zablokowany.

for Joomla >=1.6 ?
administrator/manifests/libraries/joomla.xml
for Joomla <= 1.5
you could check some other xml files.
Harald Leithner
źródło
3
Pliki XML w rozszerzeniach są prawdopodobnie jednym z najdokładniejszych sposobów określania różnic wersji. Możliwe jednak, że niektórzy gospodarze zablokują je za pomocą htaccess, więc nadal będziesz potrzebować jakiegoś planu B.
Andrew Eddie
1
Masz rację, Andrew, istnieje pytanie dotyczące tego joomla.stackexchange.com/questions/148/... więc możesz również sprawdzić pliki językowe, tam znajdziesz datę praw autorskich, która może pomóc odgadnąć wersję.
Harald Leithner,
Dzięki Andrew, to pomaga! Nie oczekuję, że otrzymam 100% dokładności, np. Gdy pliki XML strony są blokowane przez .htaccess
Neil Robertson
1
Administrator / manifesty / biblioteki / joomla.xml może ci pomóc.
Harald Leithner
4

Jest ładny artykuł na temat Gavicka na ten temat:

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

co prowadzi do tej wtyczki do Chrome:

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

Które właśnie zainstalowałem ... robi to, co chcesz. Na pasku adresu znajduje się małe logo Joomla, a kliknięcie go informuje o wersji Joomla, która jest uruchomiona.

Brian Peat
źródło
Dzięki Brian, artykuł Gavicka to dokładnie ten rodzaj informacji, którego szukam, chociaż brakuje w nim najnowszych informacji o Joomla 3.x. Istnieje również dodatek „Joomla Version Check” dla FireFox, który działa dobrze i już go używam, ale idealnie jestem gotów opracować własne rozwiązanie, aby móc wprowadzić partię adresów URL i sprawdzić kilka innych rzeczy w tym samym czasie.
Neil Robertson
4

Wersja jest przechowywana wewnątrz JVersionklasy. Jest /libraries/cms/version/version.phpwłączony, więc możesz go jakoś przeanalizować.

Dmitry Rekun
źródło
4
Nie działałby, ponieważ nie dostanie treści z zewnątrz.
Harald Leithner,
1

Możesz skupić się na datach, a nie na wersjach jako takich. Na przykład, jeśli spojrzysz na datę modyfikacji w nagłówkach wspólnego pliku statycznego (np. Może wybierzesz plik skryptu jquery), prawdopodobnie skutecznie poinformuje Cię, kiedy ten plik został zainstalowany lub spakowany. Możesz porównać to z bieżącą datą i / lub datą ostatniego wydania zabezpieczeń, aby uzyskać całkiem niezły obraz stanu konserwacji witryny.

Istnieje wiele sposobów ustawienia daty pliku, więc nie jest to 100 niezawodne, ale w większości jest całkiem dobre i ma tę zaletę, że może być stosowane na wielu różnych rodzajach serwerów i oprogramowania.

Mc0e
źródło
1

Możesz sprawdzić domyślne pliki w lokalnej / zdalnej instalacji Joomla pod adresem

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

Te foldery zawierają aktualizacje SQL, które pomogą w odciskach palców wersji.

Na przykład: Joomla 3.8.3 będzie mieć wszystkie aktualizacje SQL dla poprzednich wersji do

3.8.2-2017-10-14.sql

podobnie dla wersji 3.4.3

3.4.0-2015-02-26.sql

jeśli chcesz uruchomić brute-force w celu identyfikacji wersji, poniżej znajduje się lista plików SQL, z którymi możesz chcieć uruchomić:

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

To może nie dać ci dokładnej wersji, ale przynajmniej pomaga zidentyfikować główną wersję.

shyam somana
źródło