На сегодняшний день существует множество сервисов и утилит, которые позволяют определить, какие веб-сервер и CMS использует тот или иной сайт. В данной статье такие сервисы и утилиты будут рассмотрены и сравнены между собой. Эта тема важна в задачах автоматизации нахождения способов взаимодействия с массивами сайтов на программном уровне.
Постановка задач
Целью данной статьи является изучение способов получения информации о backend-составляющей произвольного сайта, а также анализ методов, на которых они основываются. Для достижения поставленной цели необходимо:
Составить перечень уже существующих способов получения необходимой нам информации. Под способами подразумеваются различные веб-сервисы, а также утилиты и расширения для браузеров;
Выявить особенности каждого способа;
Сравнить способы между собой;
Проанализировать полученные результаты и выявить методы, которые используются вышеуказанными способами.
Обзор существующих способов получения информации о веб-ресурсах
Составим перечень уже существующих сервисов и утилит, которые позволяют узнать информацию об интернет-ресурсе:
Утилиты (для UNIX-систем):
telnet
curl
whatweb
Веб-сервисы:
2.1) builtwith.com – https://builtwith.com
2.2) netcraft.com – http://toolbar.netcraft.com/site_report
2.3) bertal.ru – https://bertal.ru
2.4) w3techs.com – https://w3techs.com/sites
3) Расширения для браузера (в моем случае – Google Chrome):
3.1) Wappalyzer – https://chrome.google.com/webstore/detail/wappalyzer/gppongmhjkpfnbhagpmjfkannfbllamg?hl=ru
3.2) SimilarTech Prospecting – https://chrome.google.com/webstore/detail/similartech-prospecting/jiabgmelnfhgjkfdaoiccfcbaedjfcnm
Утилиты
Telnet – сетевой протокол для реализации текстового интерфейса по сети (в современной форме — при помощи транспорта TCP). [1] Это стандартная команда в терминале, позволяет нам узнать веб-сервер, в некоторых случаях его версию, а также другую информацию о сайте (CMS, OS и тд). Это можно осуществить, введя в терминале [2]:
telnet address.domen 80
HEAD / HTTP/1.0
Рисунок 1 – Пример использования утилиты telnet
Как видно на рисунке 1, веб-сервером для сайта sfedu.ru является nginx версии 1.8.1. Из интересующей нас информации можно выделить название и версию веб-сервера.
Особенности:
+ Открытость алгоритма;
+ Определяет веб-сервер (и в некоторых случаях его версию).
– Минимальное количество информации на выходе (не определяет, какая CMS функционирует на сайте);
– Ненадежность работы (информацию о сайте, которая находится в заголовках, можно скрыть).
Curl – свободная, кроссплатформенная служебная программа командной строки, позволяющая взаимодействовать с множеством различных серверов по множеству различных протоколов с синтаксисом URL. [3]
С помощью этой утилиты мы можем отправить GET запрос к запрашиваемой странице с помощью команды curl –v ‘Название сайта’. Параметр –v нам нужен для того, чтобы увидеть информацию в заголовках. [4]
Рисунок 2 – Пример использования утилиты curl
На рисунке 2 заметно, что выводимая информация мало чем отличается от той, что предоставлял нам telnet, за исключением кода страницы на языке html.
Особенности схожи с telnet, отличие только в более удобном использовании утилиты.
Whatweb – открытая утилита, позволяющая нам узнать практически полную информацию о сайте: системы управления содержимым (CMS), блог-платформы, программы для аналитики и сбора статистики, библиотеки JavaScript, веб-серверы и использующиеся устройства.
Для того, чтобы получить информацию о сайте, нужно запустить утилиту, указав при этом адрес сайта [5]:
whatweb название_сайта
Рисунок 3 – Пример использования утилиты whatweb
Из рисунка 3 видно, что утилита whatweb возвращает нам информацию о веб-сервере и о фреймворке (JQuery).
Особенности:
+ Открытый алгоритм;
+ Простой синтаксис.
+ Больше информации, в сравнении с telnet/curl;
– Не всегда определяет CMS сайта.
Веб-сервисы
Builtwith.com – сайт, предоставляющий сервисы для веб-разработчиков, такие как статистика, аналитика, а также получение достаточно развернутой информации о сайте.
Рисунок 4 – Пример использования сервиса builtwith.com
По данному на рисунке сайту была получена информация о веб-сервере, сертификате SSL, E-mail сервисах, фреймворках, используемых библиотеках JavaScript и т.д.
Особенности:
+ Достаточно подробная информация о сайте;
+ Скорость работы и простота в использовании.
– Закрытый алгоритм;
– Несмотря на подробность информации, иногда возникают неопределенности, как это видно на рисунке, мы получили 2 варианта веб-сервера.
Netcraft.com – сайт, принадлежащий компании Netcraft, которая предоставляет услуги анализа веб-серверов и веб-хостингов, включая анализ с каких операционных систем и браузеров был посещён сайт.
Рисунок 5 – Пример использования сервиса netcraft.com
Важной особенностью этого сервиса является то, что он предоставляет информацию об истории хостинга запрашиваемого сайта, что отражено на рисунке 5.
Особенности:
+ Подробная информация о сайте;
+ История хостинга.
– Нет возможности определить CMS.
Bertal.ru – данный сервис предназначен для просмотра http-заголовков любых веб-файлов (.html, .php, .asp, .gif, .jpg, .css и др.).
Рисунок 6 – Пример использования сервиса bertal.ru
Как видно из рисунка, вывод сервиса идентичен тому, что мы выдели в telnet, поэтому этот сервис будет иметь те же особенности, что и утилита.
W3techs.com – сервис W3Techs предоставляет информацию об использовании различных технологии в сети Интернет. Он также позволяет получить информацию об определенном веб-сайте.
Рисунок 7 – Пример использования сервиса W3Techs
Данный сервис по содержанию информации схож с netcraft.com, отличительной чертой этого сервиса будет выдача оценки сайту, основанной на популярности, загруженности и версии технологии, используемой на этом сайте в сравнении с остальными сайтами.
3.1) Расширения Chrome
Wappalyzer – расширение для Google Chrome, предоставляющее информацию об открытом в данном окне браузера сайте.
Рисунок 8 – Пример использования расширения Wappalyzer
Особенности:
+ Полнота информации
+ Удобство в использовании
+ Открытость алгоритма
– Ненадежность в использовании
– Для работы расширения необходимо открыть нужную страницу в браузере
SimilarTechProspecting – расширение для Google Chrome, позволяющее сделать экспресс-анализ требуемого сайта, отобразить статистику сайта, а также список использованных технологии.
Рисунок 9 – Пример использования расширения SimilarTech Prospecting
Особенности:
+ Подробная информация на выходе;
+ Статистика и анализ сайта;
+ Удобство использования;
+ Надежность в использовании.
– Для работы расширения необходимо открыть нужную страницу в браузере;
– Закрытый алгоритм.
Сравнение известных способов
Для сравнения способов мною были выбраны 20 веб-ресурсов:
– www.aeromaritime.de
– www.artelllc.com
– www.aselsan.com.tr
– www.baesystems.com
– www.bel-india.com
– www.boeing.com
– www.caci.com
– www.cobham.com
– www.comdev.ca
– www.cpii.com
– www.cubic.com
– www.curtisswright.com
– www.datalinksolutions.net
– www.drs.com
– www.eads.com
– www.astrium.eads.net
– www.cassidian.com
– www.elbitsystems.com
– www.emsolutions.com.au
– www.emrise.com
Для каждого способа составим таблицу, в которой будут показаны результаты, отражающие успешность нахождения таких веб-технологии, как веб-сервер и его версия, CMS и ее версия.
Telnet
Таблица 1 – Результаты работы утилиты telnet
Веб-сервер |
CMS |
|
www.aeromaritime.de |
Apache |
– |
www.artelllc.com |
– |
– |
www.aselsan.com.tr |
– |
– |
www.baesystems.com |
ATLAS Platform |
– |
www.bel-india.com |
Microsoft-HTTPAPI 2.0 |
– |
www.boeing.com |
– |
– |
www.caci.com |
Microsoft-IIS/8.5 |
– |
www.cobham.com |
– |
– |
www.comdev.ca |
Nginx/1.10.1 |
– |
www.cpii.com |
Apache |
– |
www.cubic.com |
– |
– |
www.curtisswright.com |
– |
– |
www.datalinksolutions.net |
Apache/2.4.23 |
– |
www.drs.com |
Microsoft–IIS/8.0 |
– |
www.eads.com |
Apache |
– |
www.astrium.eads.net |
Apache/2.2.15 |
– |
www.cassidian.com |
Apache |
– |
www.elbitsystems.com |
Sucuri/Cloudproxy |
– |
www.emsolutions.com.au |
nginx |
– |
www.emrise.com |
Apache |
– |
3.2 Curl
Так как принцип работы curl схож с принципом работы telnet, то данному способу будет соответствовать таблица для telnet.
3.3 Whatweb
Таблица 2 – Результаты работы утилиты whatweb
Веб-сервер |
CMS |
|
www.aeromaritime.de |
Apache |
WordPress 4.6.1 |
www.artelllc.com |
Apache 2.2.22 |
WordPress 3.8.1 |
www.aselsan.com.tr |
– (Error) |
– |
www.baesystems.com |
Oracle HTTP Server |
– |
www.bel-india.com |
Microsoft-IIS/7.0 |
– |
www.boeing.com |
Apache-Coyote 1.1 |
– |
www.caci.com |
Microsoft-IIS 8.5 |
– |
www.cobham.com |
– (Error) |
– |
www.comdev.ca |
Nginx 1.10.1 / Apache |
Joomla |
www.cpii.com |
Apache |
– |
www.cubic.com |
– |
– |
www.curtisswright.com |
– |
– |
www.datalinksolutions.net |
Apache/2.4.23 |
– |
www.drs.com |
– |
– |
www.eads.com |
Apache |
– |
www.astrium.eads.net |
Apache/2.2.15 |
– |
www.cassidian.com |
Apache |
– |
www.elbitsystems.com |
Sucuri/Cloudproxy |
– |
www.emsolutions.com.au |
nginx |
Drupal (Joomla?) |
www.emrise.com |
Apache |
– |
3.4 Builtwith.com
Таблица 3 – Результаты работы сервиса builtwith.com
Веб-сервер |
CMS |
|
www.aeromaritime.de |
Apache |
WordPress 4.6 |
www.artelllc.com |
Apache 2.2 |
WordPress 3.8 |
www.aselsan.com.tr |
Microsoft IIS 8 |
MS SharePoint Server 2013 |
www.baesystems.com |
IIS Oracle HTTP Server nginx |
Oracle WebCenter Sites |
www.bel-india.com |
IIS 7 |
Drupal 7.3 |
www.boeing.com |
Apache Coyote |
HP TeamSite |
www.caci.com |
IIS 8 |
Google Search Appliance (???) |
www.cobham.com |
IIS 7 |
Umbraco |
www.comdev.ca |
Apache |
Joomla |
www.cpii.com |
Apache |
– |
www.cubic.com |
Apache |
– |
www.curtisswright.com |
IIS/7 |
Q4Web |
www.datalinksolutions.net |
Apache/2.4 |
– |
www.drs.com |
– |
– |
www.eads.com |
Apache |
Magnolia |
www.astrium.eads.net |
Apache/2.2 |
– |
www.cassidian.com |
Apache |
– |
www.elbitsystems.com |
– |
Thomson Reuters Corporate Solutions |
www.emsolutions.com.au |
nginx |
Joomla/Drupal |
www.emrise.com |
Apache |
– |
3.5 Netcraft.com
Таблица 4 – Результаты работы сервиса netcraft.com
Веб-сервер |
CMS |
|
www.aeromaritime.de |
Microsoft IIS/5.0 |
WordPress |
www.artelllc.com |
Apache |
WordPress |
www.aselsan.com.tr |
IIS/8.5 |
sharepoint |
www.baesystems.com |
Oracle-HTTP-Server/11.1.1.9.0 |
– |
www.bel-india.com |
IIS/7.0 |
– |
www.boeing.com |
Apache-Coyote/1.1 |
Interwoven |
www.caci.com |
IIS/8.5 |
– |
www.cobham.com |
IIS/7.0 (?) |
– |
www.comdev.ca |
nginx/1.10.1 |
Joomla |
www.cpii.com |
Apache |
– |
www.cubic.com |
IIS/7.0 (?) |
DotNetNuke |
www.curtisswright.com |
– |
– |
www.datalinksolutions.net |
Apache/2.4.23 |
– |
www.drs.com |
IIS/8.0 (?) |
– |
www.eads.com |
Apache |
– |
www.astrium.eads.net |
Apache/2.2.15 |
– |
www.cassidian.com |
Apache |
– |
www.elbitsystems.com |
Sucuri/Cloudproxy |
– |
www.emsolutions.com.au |
Advanced Hosting by http//www.unixy.net/varnish |
– |
www.emrise.com |
Apache |
– |
3.6 Bertal.ru
Так как принцип работы этого сервиса схож с telnet, то для этого сервиса соответствует идентичная telnet таблица.
3.7 W3Techs.com
Таблица 5 – Результаты работы сервиса W3Techs.com
Веб-сервер |
CMS |
|
www.aeromaritime.de |
Apache |
WordPress/4.6.1 |
www.artelllc.com |
Apache/2.2.22 |
WordPress/3.8.1 |
www.aselsan.com.tr |
Microsoft-IIS |
SharePoint |
www.baesystems.com |
Oracle HTTP Server 11.1.1.9.0 |
– |
www.bel-india.com |
Microsoft-IIS/7.0 |
Drupal (использовался ранее, нынешняя CMS неизвестна) |
www.boeing.com |
Tomcat |
– |
www.caci.com |
Microsoft-IIS/8.5 |
– |
www.cobham.com |
– |
– |
www.comdev.ca |
Apache |
Joomla/3.5.0 |
www.cpii.com |
Apache |
– |
www.cubic.com |
Microsoft-IIS |
DotNetNuke |
www.curtisswright.com |
– |
– |
www.datalinksolutions.net |
Apache/2.4.23 |
– |
www.drs.com |
– |
– |
www.eads.com |
Apache |
– |
www.astrium.eads.net |
Apache |
– |
www.cassidian.com |
Apache |
WordPress |
www.elbitsystems.com |
– |
– |
www.emsolutions.com.au |
Nginx |
Drupal |
www.emrise.com |
Apache |
– |
3.8 Wappalyzer
Таблица 6 – Результаты работы расширения wappalyzer
Веб-сервер |
CMS |
|
www.aeromaritime.de |
Apache |
WordPress 4.6.1 |
www.artelllc.com |
Apache 2.2.22 |
WordPress 3.8.1 |
www.aselsan.com.tr |
IIS |
MS SharePoint 15.0.0.4771 |
www.baesystems.com |
Oracle HTTP Server |
- |
www.bel-india.com |
IIS 7 |
- |
www.boeing.com |
Apache Tomcat 4.1+ |
- |
www.caci.com |
IIS 8.5 |
- |
www.cobham.com |
(не удалось соединиться) |
(не удалось соединиться) |
www.comdev.ca |
Apache |
Joomla |
www.cpii.com |
Apache |
- |
www.cubic.com |
– |
– |
www.curtisswright.com |
IIS |
– |
www.datalinksolutions.net |
Apache/2.4.23 |
– |
www.drs.com |
– |
– |
www.eads.com |
Apache |
– |
www.astrium.eads.net |
Apache/2.2.15 |
– |
www.cassidian.com |
– |
– |
www.elbitsystems.com |
– |
WordPress |
www.emsolutions.com.au |
Nginx |
Drupal |
www.emrise.com |
Apache |
– |
3.9 SimilarTech Prospecting
Таблица 7 – Результаты работы расширения similartech prospecting
Веб-сервер |
CMS |
|
www.aeromaritime.de |
Apache |
WordPress |
www.artelllc.com |
Apache |
WordPress |
www.aselsan.com.tr |
– |
SharePoint |
www.baesystems.com |
– |
Oracle WebCenter |
www.bel-india.com |
IIS |
– |
www.boeing.com |
Apache |
HP TeamSite |
www.caci.com |
– |
– |
www.cobham.com |
– |
– |
www.comdev.ca |
nginx |
– |
www.cpii.com |
Apache |
– |
www.cubic.com |
– |
DNN Software |
www.curtisswright.com |
– |
– |
www.datalinksolutions.net |
Apache |
– |
www.drs.com |
IIS |
Umbraco |
www.eads.com |
Apache BigIP |
– |
www.astrium.eads.net |
Apache |
– |
www.cassidian.com |
– |
– |
www.elbitsystems.com |
– |
– |
www.emsolutions.com.au |
Apache |
– |
www.emrise.com |
Apache |
Web Dot Com |
Исходя из полученных результатов, можно сделать вывод, что наилучшими решениями для определения веб-сервера являются сервисы builtwith.com и netcraft.com. Наихудшими решениями для этой же задачи будут утилиты telnet/curl, сервис bertal.ru и расширение SimilarTech Prospecting.
Для задачи определения CMS лучше всего подойдет сервис builtwith.com, хуже всего – утилита whatweb. Для решения данной задачи утилиты telnet и curl, а также сервис bertal.ru не подойдут в принципе.
Возможные методы получения информации о веб-ресурсах
Обозначим, какие методы могут использоваться в рассмотренных ранее способах.
telnet/curl/bertal.ru
В основе этих способов лежит чтение информации в заголовках ответов, получаемых на GET-запросы к серверам. [6] Данный метод очень ненадежен, так как мы не получаем информации о CMS, потому что она не указывается в заголовках. Также не всегда удается получить информацию о веб-сервере, так как ее можно скрыть (подробнее о том как это сделать для Apache: http://guruadmin.ru/page/hide-apache-software-version).
whatweb /W3Techs/Wappalyzer
В основе этих методов лежит анализ исходного кода веб-ресурса с дальнейшим поиском в полученном коде упоминаний об уже известных веб-технологиях. [7-9] Данный метод имеет вероятностный характер, так как нет гарантии того, что в исходном коде страницы мы найдем какие-либо упоминания о нужных нам веб-технологиях. Также на вероятность успешного получения информации о сайте влияет количество известных данному способу веб-технологии (чем больше известно, тем больше вероятность).
builtwith.com/netcraft.com/similartech prospecting
Данные способы принадлежат коммерческим организациям, следовательно их алгоритмы работы закрыты, поэтому у нас нет возможность точно узнать, какие методы используются в данных способах. Можно предположить, что данные способы используют метод, уже рассмотренный в 4.2.
Заключение
На сегодняшний день не существует такого способа получения информации о веб-ресурсах, который давал бы полную и на 100% точную информацию о запрашиваемом веб-ресурсе, по той причине, что такая информация по желанию владельца сайта может оставаться конфиденциальной. Поэтому способы, позволяющие получить наиболее полную информацию о нужном веб-ресурсе, зачастую носят вероятностный характер, который из-за своих особенностей, рассмотренных в главе 4.2, не позволяет получить точную информацию о сайте. Вероятность успешного нахождения информации для заданного веб-ресурса также зависит от количества известных конкретному способу веб-технологии. С появлением новых веб-технологии становится очень важным детальное рассмотрение особенностей каждой из них, так как отсутствие информации о таких технологиях резко снижает шансы на успешное получение нужной информации.
В данной статье были рассмотрены и сравнены между собой различные известные способы решения задачи определения информации о веб-технологиях, используемых в тех или иных веб-ресурсах. Информация, полученная в результате данного исследования может помочь в построении собственных алгоритмов получения информации о веб-ресурсах.
Список использованных источников
Telnet [Электронный ресурс]. – Электрон. текстовые дан. – Режим доступа: URL: https://ru.wikipedia.org/wiki/Telnet (дата доступа: 27.10.2016).
Узнаем версию веб-сервера и установленного на нем ПО [Электронный ресурс]. – Электрон. текстовые дан. – Режим доступа: URL: http://guruadmin.ru/page/uznaem-versiju-veb-servera-i-ustanovlennogo-na-nem-po (дата доступа: 27.10.2016).
cURL [Электронный ресурс]. – Электрон. текстовые дан. – Режим доступа: URL: https://ru.wikipedia.org/wiki/CURL (дата доступа: 27.10.2016).
curl.1 the man page [Электронный ресурс]. – Электрон. текстовые дан. – Режим доступа: URL: https://curl.haxx.se/docs/manpage.html (дата доступа: 27.10.2016).
Инструкция по WhatWeb: как узнать движок сайта в Kali Linux [Электронный ресурс]. – Электрон. текстовые дан. – Режим доступа: URL: https://codeby.net/bezopasnost/instrukcija-po-whatweb-kak-uznat-dvizhok-sajta-v-kali-linux/ (дата доступа: 27.10.2016).
Простым языком об HTTP [Электронный ресурс]. – Электрон. текстовые дан. – Режим доступа: URL: https://habrahabr.ru/post/215117/ (дата доступа: 27.10.2016).
The WhatWeb Wiki [Электронный ресурс]. – Электрон. текстовые дан. – Режим доступа: URL: https://github.com/urbanadventurer/WhatWeb/wiki (дата доступа: 27.10.2016).
W3Techs – Frequently Asked Questions [Электронный ресурс]. – Электрон. текстовые дан. – Режим доступа: URL: https://w3techs.com/faq (дата доступа: 27.10.2016).
Wappalyzer – FAQ [Электронный ресурс]. – Электрон. текстовые дан. – Режим доступа: URL: https://wappalyzer.com/faq (дата доступа: 27.10.2016).