Как я могу программно определить версию сайта Joomla, на которой у меня нет прав администратора?

10

Я создаю инструмент аудита с использованием PHP, где я могу отправить URL-адрес веб-сайта Joomla и выполнить ряд проверок на целевом веб-сайте, включая определение установленного номера версии Joomla. У меня нет прав администратора на целевом веб-сайте Joomla или на сервере, на котором он находится.

Может кто-нибудь сказать мне, какие файлы и содержимое файлов мне нужно проверить, чтобы иметь возможность уверенно прогнозировать установленную версию Joomla, не имея каких-либо привилегий администратора на целевом веб-сайте Joomla?

Я заинтересован не только в том, чтобы узнать, является ли сайт Joomla 2.5 (например), но также в том, что это Joomla 2.5.18 или 2.5.19 и т. Д., Поэтому я знаю, поддерживается ли он в хорошем состоянии или нет.

Нил Робертсон
источник
Вы делаете это из внешнего скрипта?
Дмитрий Рекун
1
Я использую комментарий, потому что это не настоящий технический ответ, но если вам просто нужен базовый номер 1.5, 2.5, 3.x, тогда вы можете попробовать просмотреть администратора и увидеть цвет или стиль страницы администратора. Вот как я могу легко определить 1,5 сайта.
Брайан Пит
Да. Форма и сценарий будут работать на веб-сайте Joomla и будут пытаться проанализировать не связанный с ними веб-сайт Joomla.
Нил Робертсон
Спасибо Брайан, это побуждает меня немного прояснить вопрос.
Нил Робертсон,
Также см. Joomla.stackexchange.com/a/7187/120, опубликованный @Lodder
Нилом Робертсоном

Ответы:

9

Я думаю, вам нужно скачать и установить все версии Joomla и проверить, какие файлы являются уникальными.

Также хорошей отправной точкой являются файлы index.html в разных версиях Joomla, произошла смена содержимого iirc.

На основании комментария @ brian-a-peat вы можете проверить цвет раздела администратора.

это, пожалуй, лучший подход для проверки контрольной суммы файлов CSS, например.

Следующее редактирование: хороший XML действительно даст вам хорошую отправную точку, если он не заблокирован.

for Joomla >=1.6 ?
administrator/manifests/libraries/joomla.xml
for Joomla <= 1.5
you could check some other xml files.
Харальд Лейтнер
источник
3
XML-файлы в расширениях, вероятно, являются одним из наиболее точных способов определения различий версий. Однако некоторые хосты могут заблокировать их с помощью htaccess, так что вам все равно понадобится какой-то план Б.
Эндрю Эдди,
1
Эндрю, вы правы, есть вопрос об этом joomla.stackexchange.com/questions/148/…, так что вы также можете проверить языковые файлы, там вы найдете дату авторского права, которая может помочь угадать версию.
Харальд Лейтнер
Спасибо Андрей, это помогает! Я не ожидаю получения 100% точности, например, когда XML-файлы сайта заблокированы с помощью .htaccess
Нил Робертсон,
1
Так что администратор / манифесты / библиотеки / joomla.xml может помочь вам.
Харальд Лейтнер
4

Есть хорошая статья о Гэвике относительно этого:

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

что приводит к этому плагину для Chrome:

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

Который я только что установил ... он полностью делает то, что вы хотите. В адресной строке есть небольшой логотип Joomla, и если вы нажмете на него, он сообщит вам версию Joomla, которая работает.

Брайан Пит
источник
Спасибо Брайан, статья о Гэвике - это именно та информация, которую я ищу, хотя в ней отсутствует последняя информация о Joomla 3.x. Существует также надстройка «Проверка версий Joomla» для FireFox, которая работает хорошо, и я уже использую ее, но в идеале я стремлюсь разработать собственное решение, чтобы я мог ввести пакет URL-адресов и одновременно проверить некоторые другие вещи.
Нил Робертсон
4

Версия хранится внутри JVersionкласса. Это /libraries/cms/version/version.phpтак, может быть, вы можете как-то разобрать.

Дмитрий Рекун
источник
4
Не сработает, потому что он не получит контент от extern.
Харальд Лейтнер
1

Вы можете сосредоточиться на датах, а не версиях как таковых. Например, если вы посмотрите на дату изменения в заголовках общего статического файла (например, возможно, вы выберете файл скрипта jquery), он, скорее всего, сообщит вам, когда этот файл был установлен или упакован. Вы можете сравнить это с текущей датой и / или датой последнего выпуска безопасности, чтобы получить довольно хорошее представление о состоянии обслуживания сайта.

Существует множество способов установки даты файла, поэтому она не является надежной на 100%, но в основном она довольно хороша и имеет то преимущество, что она применима ко многим различным типам серверов и программного обеспечения.

mc0e
источник
1

Вы можете проверить файлы по умолчанию в локальной / удаленной установке Joomla по адресу

/ administrator / компоненты / com_admin / sql / updates / sqlazure / администратор / компоненты / com_admin / sql / updates / mysql / администратор / компоненты / com_admin / sql / updates / postgresql

Эти папки содержат обновления SQL, которые помогут в дактилоскопии версии.

Например: Joomla 3.8.3 будет иметь все обновления SQL для предыдущих версий до

3.8.2-2017-10-14.sql

аналогично для версии 3.4.3

3.4.0-2015-02-26.sql

если вы хотите запустить brute-force для определения версии, ниже приведен список файлов sql, с которыми вы можете работать:

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

Это может не дать вам точную версию, но, по крайней мере, поможет вам определить основную версию.

Шьям Сомана
источник