
Сборщик информации о веб-приложениях
wig — это инструмент для сбора информации о веб-приложениях, который может идентифицировать множество систем управления контентом и других административных приложений.
Идентификация приложений основана на контрольных суммах и сопоставлении строк известных файлов для различных версий CMS. В результате для каждой обнаруженной CMS и её версий вычисляется оценка. Каждая обнаруженная CMS отображается вместе с наиболее вероятной версией(ями). Расчёт оценки основан на весах и количестве «совпадений» для заданной контрольной суммы.
wig также пытается угадать операционную систему на сервере на основе заголовков 'server' и 'x-powered-by'. В wig включена база данных, содержащая известные значения заголовков для разных операционных систем, что позволяет wig определить версии Microsoft Windows, а также дистрибутив и версию Linux.
wig написан на Python 3 и поэтому несовместим с Python 2.
wig можно запускать из командной строки или установить с помощью distutils.
$ python3 wig.py example.com
Установите с помощью
$ python3 setup.py install
затем wig можно импортировать из любого места, например:
>>>> from wig.wig import wig
>>>> w = wig(url='example.com')
>>>> w.run()
>>>> results = w.get_results()
По умолчанию wig определяет CMS и завершает работу после обнаружения версии CMS. Это сделано для ограничения объёма трафика, отправляемого на целевой сервер. Это поведение можно изменить, задав флаг '-a', в этом случае wig протестирует все известные отпечатки. Поскольку некоторые конфигурации приложений не используют расположение файлов и ресурсов по умолчанию, wig может загрузить все статические ресурсы, которые встречаются во время сканирования. Это делается с помощью опции '-c'. Опция '-m' проверяет все отпечатки по всем загруженным URL, что полезно, если расположение по умолчанию было изменено.
usage: wig.py [-h] [-l INPUT_FILE] [-q] [-n STOP_AFTER] [-a] [-m] [-u] [-d]
[-t THREADS] [--no_cache_load] [--no_cache_save] [-N]
[--verbosity] [--proxy PROXY] [-w OUTPUT_FILE]
[url]
WebApp Information Gatherer
positional arguments:
url The url to scan e.g. http://example.com
optional arguments:
-h, --help show this help message and exit
-l INPUT_FILE File with urls, one per line.
-q Set wig to not prompt for user input during run
-n STOP_AFTER Stop after this amount of CMSs have been detected. Default:
1
-a Do not stop after the first CMS is detected
-m Try harder to find a match without making more requests
-u User-agent to use in the requests
-d Disable the search for subdomains
-t THREADS Number of threads to use
--no_cache_load Do not load cached responses
--no_cache_save Do not save the cache for later use
-N Shortcut for --no_cache_load and --no_cache_save
--verbosity, -v Increase verbosity. Use multiple times for more info
--proxy PROXY Tunnel through a proxy (format: localhost:8080)
-w OUTPUT_FILE File to dump results into (JSON)
$ python3 wig.py example.com
wig - WebApp Information Gatherer