Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
webscreenshot — Un script simple pour capturer une capture d'écran d'une liste de sites web | Kitploit
Outils/GitHubGitHub/maaaaz/webscreenshot
ReconnaissanceCollecte d'InformationsSécurité Web
GitHubmaaaaz/webscreenshot

webscreenshot

Un script simple pour capturer une capture d'écran d'une liste de sites web

Voir le dépôt
692168il y a 10 moisVérifié par Kitploit

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

webscreenshot

Description

Un script simple pour prendre des captures d'écran d'une liste de sites web, basé sur le script PhantomJS url-to-image.

Fonctionnalités

  • Intégration du 'lazy-rendering' d'url-to-image pour les ressources AJAX
  • Fonctionnel sur les systèmes Windows et Linux
  • Prise en charge des cookies et des en-têtes HTTP personnalisés pour le moteur PhantomJS
  • Multiprocessing et arrêt des processus ne répondant pas après un délai défini par l'utilisateur
  • Acceptation de plusieurs formats en tant que cible d'entrée
  • Personnalisation de la taille de la capture d'écran (largeur, hauteur), format et qualité
  • Mappage d'options utiles de PhantomJS comme l'ignorance d'erreurs SSL, la définition d'un proxy et son authentification, l'authentification HTTP Basic
  • Prise en charge de plusieurs moteurs de rendu :
    • PhantomJS, qui est hérité et abandonné mais reste celui qui produit les meilleurs résultats
    • Chromium, Chrome et Edge Chromium, qui remplaceront PhantomJS mais présentent actuellement certaines limitations : prendre une capture d'écran d'un site HTTPS sans certificat valide, par exemple un certificat auto-signé, produira une capture d'écran vide. La raison est que l'option --ignore-certificate-errors ne fonctionne pas et ne fonctionnera plus jamais : la solution est d'utiliser un webdriver approprié, mais à ce jour webscreenshot ne vise pas à supporter cette méthode plutôt complexe nécessitant des outils tiers.
    • Firefox peut également être utilisé comme moteur de rendu mais présente certaines limitations sérieuses (donc ne l'utilisez pas pour le moment) :
      • Impossibilité d'effectuer plusieurs captures d'écran à la fois : pas de multi-instance du processus firefox
      • Pas de mode incognito, l'utilisation de webscreenshot polluera votre historique de navigation
  • Intégration de l'URL de la capture dans l'image (nécessite ImageMagick)

Utilisation

Placez vos cibles dans un fichier texte et passez-le avec l'option -i, ou comme argument positionnel si vous n'avez qu'une seule URL. Les captures d'écran seront disponibles, par défaut, dans votre répertoire ./screenshots/ courant. Les formats d'entrée acceptés sont les suivants :

root@kitploit:~
http(s)://domain_or_ip:port(/resource)
domain_or_ip:port(/resource)
domain_or_ip(/resource)

Options

root@kitploit:~
webscreenshot.py version 2.96

usage: webscreenshot [-h] [-i INPUT_FILE] [-o OUTPUT_DIRECTORY] [-w WORKERS] [-v] [--no-error-file] [-z SINGLE_OUTPUT_FILE] [-p PORT]
                     [-s] [-m] [-r {phantomjs,chrome,chromium,edge,firefox}] [--renderer-binary RENDERER_BINARY] [--no-xserver]
                     [--window-size WINDOW_SIZE] [-f {pdf,png,jpg,jpeg,bmp,ppm}] [-q [0-100]] [--ajax-max-timeouts AJAX_MAX_TIMEOUTS]
                     [--crop CROP] [--custom-js CUSTOM_JS] [-l] [--label-size LABEL_SIZE] [--label-bg-color LABEL_BG_COLOR]
                     [--imagemagick-binary IMAGEMAGICK_BINARY] [-c COOKIE] [-a HEADER] [-u HTTP_USERNAME] [-b HTTP_PASSWORD]
                     [-P PROXY] [-A PROXY_AUTH] [-T PROXY_TYPE] [-t TIMEOUT]
                     [URL]

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

Main parameters:
  URL                   Single URL target given as a positional argument
  -i, --input-file INPUT_FILE
                        <INPUT_FILE> text file containing the target list. Ex: list.txt
  -o, --output-directory OUTPUT_DIRECTORY
                        <OUTPUT_DIRECTORY> (optional): screenshots output directory (default './screenshots/')
  -w, --workers WORKERS
                        <WORKERS> (optional): number of parallel execution workers (default 4)
  -v, --verbosity       <VERBOSITY> (optional): verbosity level, repeat it to increase the level { -v INFO, -vv DEBUG } (default
                        verbosity ERROR)
  --no-error-file       <NO_ERROR_FILE> (optional): do not write a file with the list of URL of failed screenshots (default false)
  -z, --single-output-file SINGLE_OUTPUT_FILE
                        <SINGLE_OUTPUT_FILE> (optional): name of a file which will be the single output of all inputs. Ex. test.png

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

Screenshot renderer parameters:
  -r, --renderer {phantomjs,chrome,chromium,edge,firefox}
                        <RENDERER> (optional): renderer to use among 'phantomjs' (legacy but best results), 'chrome', 'chromium',
                        'edge', 'firefox' (version > 57) (default 'phantomjs')
  --renderer-binary RENDERER_BINARY
                        <RENDERER_BINARY> (optional): path to the renderer executable if it cannot be found in $PATH
  --no-xserver          <NO_X_SERVER> (optional): if you are running without an X server, will use xvfb-run to execute the renderer
                        (by default, trying to detect if DISPLAY environment variable exists

Screenshot image parameters:
  --window-size WINDOW_SIZE
                        <WINDOW_SIZE> (optional): width and height of the screen capture (default '1200,800')
  -f, --format {pdf,png,jpg,jpeg,bmp,ppm}
                        <FORMAT> (optional, phantomjs only): specify an output image file format, "pdf", "png", "jpg", "jpeg", "bmp"
                        or "ppm" (default 'png')
  -q, --quality [0-100]
                        <QUALITY> (optional, phantomjs only): specify the output image quality, an integer between 0 and 100 (default
                        75)
  --ajax-max-timeouts AJAX_MAX_TIMEOUTS
                        <AJAX_MAX_TIMEOUTS> (optional, phantomjs only): per AJAX request, and max URL timeout in milliseconds
                        (default '1400,1800')
  --crop CROP           <CROP> (optional, phantomjs only): rectangle <t,l,w,h> to crop the screen capture to (default to WINDOW_SIZE:
                        '0,0,w,h'), only numbers, w(idth) and h(eight). Ex. "10,20,w,h"
  --custom-js CUSTOM_JS
                        <CUSTOM_JS> (optional, phantomjs only): path of a file containing JavaScript code to be executed before
                        taking the screenshot. Ex: js.txt

Screenshot label parameters:
  -l, --label           <LABEL> (optional): for each screenshot, create another one displaying inside the target URL (requires
                        imagemagick)
  --label-size LABEL_SIZE
                        <LABEL_SIZE> (optional): font size for the label (default 60)
  --label-bg-color LABEL_BG_COLOR
                        <LABEL_BACKGROUND_COLOR> (optional): label imagemagick background color (default NavajoWhite)
  --imagemagick-binary IMAGEMAGICK_BINARY
                        <LABEL_BINARY> (optional): path to the imagemagick binary (magick or convert) if it cannot be found in $PATH

HTTP parameters:
  -c, --cookie COOKIE   <COOKIE_STRING> (optional): cookie string to add. Ex: -c "JSESSIONID=1234; YOLO=SWAG"
  -a, --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> (optional): specify a username for HTTP Basic Authentication.
  -b, --http-password HTTP_PASSWORD
                        <HTTP_PASSWORD> (optional): specify a password for HTTP Basic Authentication.

Connection parameters:
  -P, --proxy PROXY     <PROXY> (optional): specify a proxy. Ex: -P http://proxy.company.com:8080
  -A, --proxy-auth PROXY_AUTH
                        <PROXY_AUTH> (optional): provides authentication information for the proxy. Ex: -A user:password
  -T, --proxy-type PROXY_TYPE
                        <PROXY_TYPE> (optional): specifies the proxy type, "http" (default), "none" (disable completely), or
                        "socks5". Ex: -T socks
  -t, --timeout TIMEOUT
                        <TIMEOUT> (optional): renderer execution timeout in seconds (default 30 sec)

Exemples

root@kitploit:~
list.txt
--------
http://google.fr
https://216.58.213.131
216.58.213.131
https://duckduckgo.com/robots.txt


Exécution par défaut avec une liste
-----------------------------
$ python webscreenshot.py -i list.txt
webscreenshot.py version 2.3

[+] 4 URLs to be screenshot
[+] 4 actual URLs screenshot
[+] 0 error(s)


Exécution par défaut avec une seule URL
-----------------------------------
$ python webscreenshot.py -v google.fr
webscreenshot.py version 2.3

[INFO][General] 'google.fr' has been formatted as 'http://google.fr:80' with supplied overriding options
[+] 1 URLs to be screenshot
[INFO][http://google.fr:80] Screenshot OK

[+] 1 actual URLs screenshot
[+] 0 error(s)


Exécution avec un niveau de verbosité accru
-----------------------------------
$ python webscreenshot.py -i list.txt -v
webscreenshot.py version 2.3

[INFO][General] 'http://google.fr' has been formatted as 'http://google.fr:80' with supplied overriding options
[INFO][General] 'https://216.58.213.131' has been formatted as 'https://216.58.213.131:443' with supplied overriding options
[INFO][General] '216.58.213.131' has been formatted as 'http://216.58.213.131: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][https://duckduckgo.com:443/robots.txt] Screenshot OK

[INFO][http://216.58.213.131:80] Screenshot OK

[INFO][https://216.58.213.131:443] Screenshot OK

[INFO][http://google.fr:80] Screenshot OK

[+] 4 actual URLs screenshot
[+] 0 error(s)


Résultats
-------
$ ls -l screenshots/
total 187
-rwxrwxrwx 1 root root 53805 May 19 16:04 http_216.58.213.131_80.png
-rwxrwxrwx 1 root root 53805 May 19 16:05 http_google.fr_80.png
-rwxrwxrwx 1 root root 53805 May 19 16:04 https_216.58.213.131_443.png
-rwxrwxrwx 1 root root 27864 May 19 16:04 https_duckduckgo.com_443_robots.txt.png

Options supportées par les moteurs de rendu

Les options non listées ci-dessous sont supportées par tous les moteurs de rendu actuels.

Prérequis

  • Un interpréteur Python version 2.7 ou 3.X
  • Le script Python webscreenshot :
    • Le moyen le plus simple de l'installer : pip install webscreenshot puis utilisez directement $ webscreenshot
    • Ou clonez ce dépôt et faites pip install -r requirements.txt puis python webscreenshot.py
  • L'outil PhantomJS version 2 au minimum : suivez le guide d'installation et consultez la FAQ si nécessaire
  • Chrome, Chromium ou Firefox > 57 si vous souhaitez utiliser l'un de ces moteurs de rendu
  • xvfb si vous voulez exécuter webscreenshot sur un OS sans interface graphique : utilisez l'option --no-xserver de webscreenshot pour faciliter les choses
  • Le binaire ImageMagick (magick ou convert) si vous souhaitez intégrer l'URL dans les captures avec l'option : suivez le

Journal des modifications

  • version 2.96/2.97 - 19/10/2025 : Abandon de Python v2
  • version 2.95 - 18/10/2025 : Correction d'un bug de PhantomJS lors de la non-détection de la configuration OpenSSL
  • version 2.94 - 23/08/2020 : Ajout des options custom-js et fichier de sortie unique
  • version 2.93 - 16/08/2020 : Support de Python 3.8 et Microsoft Edge Chromium ; sortie fichier pour les captures en échec ; limitation de la longueur du nom de fichier pour les URLs longues
  • version 2.92 - 21/06/2020 : Autodétection de l'option no_xserver
  • version 2.91 - 08/05/2020 : Correction du mode multiprotocole
  • version 2.9 - 26/01/2020 : Quelques corrections
  • version 2.8 - 11/01/2020 : Quelques corrections, ajout des options de timeouts AJAX, recadrage, taille d'étiquette et police d'étiquette, valeurs par défaut modifiées pour ajaxTimeout et maxTimeout
  • version 2.7 - 04/01/2020 : Ajout de l'option d'incorporation de l'URL dans la capture
  • version 2.6 - 27/12/2019 : Quelques corrections
  • version 2.5 - 22/09/2019 : Ajout des options de qualité et de format d'image, mise à jour du useragent PhantomJS, support des TLD modernes
  • version 2.4 - 30/05/2019 : Quelques corrections pour le support Windows
  • version 2.3 - 19/05/2019 : Compatibilité Python 3, ajout du moteur Firefox, ajout de l'option no-xserver
  • version 2.2 - 13/08/2018 : Support des moteurs Chrome et Chromium et support d'une seule URL
  • version 2.1 - 14/01/2018 : Ajout de l'option multiprotocole et empaquetage PyPI
  • version 2.0 - 08/03/2017 : Ajout de l'option proxy-type
  • version 1.9 - 10/01/2017 : Utilisation de TOUS les chiffrements SSL/TLS
  • version 1.8 - 05/07/2015 : Définition des groupes d'options
  • version 1.7 - 28/06/2015 : Support de l'authentification HTTP basic + option loglevel changée en verbosity
  • version 1.6 - 23/04/2015 : Correction du fond transparent
  • version 1.5 - 11/01/2015 : Support des cookies et des en-têtes HTTP personnalisés
  • version 1.4 - 12/10/2014 : Intégration du script PhantomJS url-to-image + correction de quelques bugs
  • version 1.3 - 05/08/2014 : Support Windows + correction de quelques bugs
  • version 1.2 - 27/04/2014 : Correction de quelques bugs
  • version 1.1 - 21/04/2014 : Passage du script à PhantomJS au lieu du binaire wkhtml bogué
  • version 1.0 - 12/01/2014 : Premier commit

Copyright et licence

webscreenshot est un logiciel libre : vous pouvez le redistribuer et/ou le modifier selon les termes de la licence publique générale GNU telle que publiée par la Free Software Foundation, soit la version 3 de la Licence, soit (à votre choix) toute version ultérieure.

webscreenshot est distribué dans l'espoir qu'il sera utile, mais SANS AUCUNE GARANTIE ; sans même la garantie implicite de COMMERCIALISATION ou d'ADAPTATION À UN USAGE PARTICULIER.

Voir la licence publique générale GNU pour plus de détails.

Vous devriez avoir reçu une copie de la licence publique générale GNU avec webscreenshot. Si ce n'est pas le cas, consultez http://www.gnu.org/licenses/.

Contact

  • Thomas Debize < tdebize at mail d0t com >
Télécharger l’outil
Catégorie d'optionOptionMoteur PhantomJSMoteur Chromium / Chrome / Edge ChromiumMoteur Firefox
Paramètres de capture
format (-f)OuiNonNon
qualité (-q)OuiNonNon
timeouts AJAX et requête (--ajax-max-timeouts)OuiNonNon
recadrage (--crop)OuiNonNon
JavaScript personnalisé (--custom-js)OuiNonNon
Paramètres HTTP
cookie (-c)OuiNonNon
en-tête (-a)OuiNonNon
http_username (-u)OuiNonNon
http_password (-b)OuiNonNon
Paramètres de connexion
proxy (-P)OuiOuiNon
proxy_auth (-A)OuiNonNon
proxy_type (-T)OuiOuiNon
Capacité à capturer un site HTTPS avec un certificat non signé publiquementOuiNonNon
--label
guide d'installation
  • Consultez la FAQ avant de signaler des problèmes