Webscreenshot — простой скрипт для скриншотов списка веб-сайтов

Простой скрипт для скриншотов списка веб-сайтов, основанный на скрипте phantomjs с url-to-image.

Особенности

  • Интеграция url-to-image «ленивый рендеринг» для ресурсов AJAX
  • Полностью функциональный в системах Windows и Linux
  • Поддержка определения заголовков и пользовательских HTTP-заголовков
  • Многопроцессорность и убийство неподходящих процессов после заданного пользователем таймаута
  • принимает несколько форматов в качестве цели ввода
  • Карты полезных опций фантомов, таких как игнорирование ошибки ssl, определение прокси и прокси-аутентификация, HTTP Basic Authentication

Использование

Поместите свои цели в текстовый файл и передайте его скрипту (-i).
Скриншоты будут доступны в вашем текущем каталоге ./screenshots/ (по умолчанию).
Принимаемые форматы ввода:

 http(s)://domain_or_ip:port(/ressource)
domain_or_ip:port(/ressource)
domain_or_ip(/ressource) 

Опции

 # python webscreenshot.py -h
Usage: webscreenshot.py [options]

Options:
-h, --help            show this help message and exit

Main parameters:
-i INPUT_FILE, --input-file=INPUT_FILE
<INPUT_FILE>: text file containing the target list.
Ex: list.txt
-o OUTPUT_DIRECTORY, --output-directory=OUTPUT_DIRECTORY
<OUTPUT_DIRECTORY> (optional): screenshots output
directory (default './screenshots/')
-w WORKERS, --workers=WORKERS
<WORKERS> (optional): number of parallel execution
workers (default 2)
-v, --verbosity     <VERBOSITY> (optional): verbosity level, repeat it to
increase the level { -v INFO, -vv DEBUG } (default
verbosity ERROR)

Input processing parameters:
-p PORT, --port=PORT
<PORT> (optional): use the specified port for each
target in the input list. Ex: -p 80
-s, --ssl           <SSL> (optional): enforce ssl for every connection
-m, --multiprotocol
<MULTIPROTOCOL> (optional): perform screenshots over
HTTP and HTTPS for each target

HTTP parameters:
-c COOKIE, --cookie=COOKIE
<COOKIE_STRING> (optional): cookie string to add. Ex:
-c "JSESSIONID=1234; YOLO=SWAG"
-a HEADER, --header=HEADER
<HEADER> (optional): custom or additional header.
Repeat this option for every header. Ex: -a "Host:
localhost" -a "Foo: bar"
-u HTTP_USERNAME, --http-username=HTTP_USERNAME
<HTTP_USERNAME> (optional): specify a username for
HTTP Basic Authentication.
-b HTTP_PASSWORD, --http-password=HTTP_PASSWORD
<HTTP_PASSWORD> (optional): specify a password for
HTTP Basic Authentication.

Connection parameters:
-P PROXY, --proxy=PROXY
<PROXY> (optional): specify a proxy. Ex: -P
http://proxy.company.com:80 

Примеры

 list.txt
--------
http://google.fr
https://173.194.67.113
173.194.67.113
https://duckduckgo.com/robots.txt

Default execution
-----------------
# python webscreenshot.py -i list.txt
webscreenshot.py version 1.0

[+] 4 URLs to be screenshot
[+] 4 actual URLs screenshot
[+] 0 errors

Increasing verbosity level execution
-----------------------------------
# python webscreenshot.py -i list.txt -v
webscreenshot.py version 1.1

[INFO][General] 'http://google.fr' has been formatted as 'http://google.fr:80' with supplied overriding options
[INFO][General] 'https://173.194.67.113' has been formatted as 'https://173.194.67.113:443' with supplied overriding options
[INFO][General] '173.194.67.113' has been formatted as 'http://173.194.67.113:80' with supplied overriding options
[INFO][General] 'https://duckduckgo.com/robots.txt' has been formatted as 'https://duckduckgo.com:443/robots.txt' with supplied overriding options
[+] 4 URLs to be screenshot
[INFO][http://173.194.67.113:80] Screenshot OK
[INFO][https://173.194.67.113:443] Screenshot OK
[INFO][http://google.fr:80] Screenshot OK
[INFO][https://duckduckgo.com:443/robots.txt] Screenshot OK
[+] 4 actual URLs screenshot
[+] 0 errors

Results
-------
# ls -l screenshots/
total 61
-rwxrwxrwx 1 root root 35005 Jan 12 19:46 http___173.194.67.113_80.png
-rwxrwxrwx 1 root root 38152 Jan 12 19:46 http___google.fr_80.png
-rwxrwxrwx 1 root root 35005 Jan 12 19:46 https___173.194.67.113_443.png
-rwxrwxrwx 1 root root 12828 Jan 12 19:46 https___duckduckgo.com_443_robots.txt.png 

Требования

Python 2.7
webscreenshot скрипт python:  Самый простой способ настроить его: pip install webscreenshot, а затем напрямую использовать $ webscreenshot
Или git clone репозиторий

Phantomjs> 2.x: следуйте инструкциям по установке и, если необходимо, проверьте FAQ

Изменения

  • версия 2.1 — 01/14/2018: добавление многопротокольных опций и упаковка PyPI
  • версия 2.0 — 03/08/2017: добавление опции типа прокси
  • версия 1.9 — 01/10/2017: Использование ВСЕХ шифров SSL / TLS
  • версия 1.8 — 07/05/2015: определение групп опций
  • версия 1.7 — 06/28/2015: поддержка базовой аутентификации HTTP + опция loglevel изменена на многословие
  • версия 1.6 — 04/23/2015: Прозрачная фоновая фиксация
  • версия 1.5 — 01/11/2015: поддержка файлов cookie и пользовательских HTTP-заголовков
  • версия 1.4 — 10/12/2014: интеграция с phantomjs-url-to-image + исправлено несколько ошибок
  • версия 1.3 — 08/05/2014: поддержка Windows + исправлено несколько ошибок
  • версия 1.2 — 04/27/2014: исправлено несколько ошибок
  • version 1.1 — 04/21/2014: Изменен скрипт для использования phantomjs вместо двоичного bugy wkhtml
  • version 1.0 — 01/12/2014: Первоначальное

Скачать Webscreenshot

¯\_(ツ)_/¯

Примечание: Информация для исследования, обучения или проведения аудита. Применение в корыстных целях карается законодательством РФ.

cryptoparty

Cryptography is typically bypassed, not penetrated.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

5e7fa976b0640d40