Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
webscreenshot — Un semplice script per fare screenshot di una lista di siti web. | Kitploit
Strumenti/GitHubGitHub/maaaaz/webscreenshot
RicognizioneRaccolta InformazioniSicurezza Web
GitHubmaaaaz/webscreenshot

webscreenshot

Un semplice script per fare screenshot di una lista di siti web.

Vedi Repository
692168310 mesi faRevisionato da Kitploit

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi

webscreenshot

Descrizione

Un semplice script per fare screenshot di una lista di siti web, basato sullo script PhantomJS url-to-image.

Caratteristiche

  • Integrazione del 'lazy-rendering' di url-to-image per risorse AJAX
  • Pienamente funzionante su sistemi Windows e Linux
  • Supporto per cookie e definizione di intestazioni HTTP personalizzate per il renderer PhantomJS
  • Multiprocessing e terminazione di processi che non rispondono dopo un timeout configurabile dall'utente
  • Accettazione di diversi formati come input target
  • Personalizzazione delle dimensioni dello screenshot (larghezza, altezza), formato e qualità
  • Mappatura di opzioni utili di PhantomJS come ignorare errori SSL, definizione di proxy e autenticazione proxy, autenticazione HTTP Basic
  • Supporto di più renderer:
    • PhantomJS, che è legacy e abbandonato ma ancora quello che produce i migliori risultati
    • Chromium, Chrome e Edge Chromium, che sostituiranno PhantomJS ma attualmente hanno alcune limitazioni: fare screenshot di un sito HTTPS senza un certificato valido, ad esempio uno self-signed, produrrà uno screenshot vuoto.
      Il motivo è che l'opzione --ignore-certificate-errors non funziona e non funzionerà mai più: la soluzione è utilizzare un webdriver appropriato, ma ad oggi webscreenshot non punta a supportare questo metodo piuttosto complesso che richiede strumenti di terze parti.
    • Firefox può essere utilizzato come renderer ma ha alcune limitazioni serie (quindi non usarlo per ora):
      • Impossibilità di eseguire più screenshot contemporaneamente: nessuna multi-istanza del processo firefox
      • Nessuna modalità incognito, l'uso di webscreenshot inquinerà la cronologia di navigazione
  • Incorporamento dell'URL dello screenshot nell'immagine (richiede ImageMagick)

Utilizzo

Inserisci i tuoi target in un file di testo e passalo con l'opzione -i, o come argomento posizionale se hai un singolo URL.
Gli screenshot saranno disponibili, per impostazione predefinita, nella directory corrente ./screenshots/.
I formati di input accettati sono i seguenti:

root@kitploit:~
http(s)://dominio_o_ip:porta(/risorsa)
dominio_o_ip:porta(/risorsa)
dominio_o_ip(/risorsa)

Opzioni

root@kitploit:~
webscreenshot.py versione 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            mostra questo messaggio di aiuto ed esce

Parametri principali:
  URL                   Singolo URL target dato come argomento posizionale
  -i, --input-file INPUT_FILE
                        <INPUT_FILE> file di testo contenente la lista dei target. Es: list.txt
  -o, --output-directory OUTPUT_DIRECTORY
                        <OUTPUT_DIRECTORY> (opzionale): directory di output degli screenshot (default './screenshots/')
  -w, --workers WORKERS
                        <WORKERS> (opzionale): numero di worker in esecuzione parallela (default 4)
  -v, --verbosity       <VERBOSITY> (opzionale): livello di verbosità, ripetere per aumentare il livello { -v INFO, -vv DEBUG } (default
                        verbosity ERROR)
  --no-error-file       <NO_ERROR_FILE> (opzionale): non scrivere un file con la lista degli URL degli screenshot falliti (default false)
  -z, --single-output-file SINGLE_OUTPUT_FILE
                        <SINGLE_OUTPUT_FILE> (opzionale): nome di un file che sarà il singolo output di tutti gli input. Es. test.png

Parametri di elaborazione dell'input:
  -p, --port PORT       <PORT> (opzionale): usa la porta specificata per ogni target nella lista di input. Es: -p 80
  -s, --ssl             <SSL> (opzionale): forza SSL/TLS per ogni connessione
  -m, --multiprotocol   <MULTIPROTOCOL> (opzionale): esegue screenshot su HTTP e HTTPS per ogni target

Parametri del renderer degli screenshot:
  -r, --renderer {phantomjs,chrome,chromium,edge,firefox}
                        <RENDERER> (opzionale): renderer da usare tra 'phantomjs' (legacy ma migliori risultati), 'chrome', 'chromium',
                        'edge', 'firefox' (versione > 57) (default 'phantomjs')
  --renderer-binary RENDERER_BINARY
                        <RENDERER_BINARY> (opzionale): percorso dell'eseguibile del renderer se non può essere trovato in $PATH
  --no-xserver          <NO_X_SERVER> (opzionale): se stai eseguendo senza un server X, userà xvfb-run per eseguire il renderer
                        (per impostazione predefinita, prova a rilevare se la variabile d'ambiente DISPLAY esiste

Parametri dell'immagine dello screenshot:
  --window-size WINDOW_SIZE
                        <WINDOW_SIZE> (opzionale): larghezza e altezza della cattura dello schermo (default '1200,800')
  -f, --format {pdf,png,jpg,jpeg,bmp,ppm}
                        <FORMAT> (opzionale, solo phantomjs): specifica un formato file immagine di output, "pdf", "png", "jpg", "jpeg", "bmp"
                        o "ppm" (default 'png')
  -q, --quality [0-100]
                        <QUALITY> (opzionale, solo phantomjs): specifica la qualità dell'immagine di output, un intero tra 0 e 100 (default
                        75)
  --ajax-max-timeouts AJAX_MAX_TIMEOUTS
                        <AJAX_MAX_TIMEOUTS> (opzionale, solo phantomjs): per richiesta AJAX, e timeout massimo URL in millisecondi
                        (default '1400,1800')
  --crop CROP           <CROP> (opzionale, solo phantomjs): rettangolo <t,l,w,h> per ritagliare la cattura dello schermo (default a WINDOW_SIZE:
                        '0,0,w,h'), solo numeri, w(idt) e h(eight). Es. "10,20,w,h"
  --custom-js CUSTOM_JS
                        <CUSTOM_JS> (opzionale, solo phantomjs): percorso di un file contenente codice JavaScript da eseguire prima
                        di scattare lo screenshot. Es: js.txt

Parametri dell'etichetta dello screenshot:
  -l, --label           <LABEL> (opzionale): per ogni screenshot, crearne un altro che mostra all'interno l'URL target (richiede
                        imagemagick)
  --label-size LABEL_SIZE
                        <LABEL_SIZE> (opzionale): dimensione del carattere per l'etichetta (default 60)
  --label-bg-color LABEL_BG_COLOR
                        <LABEL_BACKGROUND_COLOR> (opzionale): colore di sfondo dell'etichetta per imagemagick (default NavajoWhite)
  --imagemagick-binary IMAGEMAGICK_BINARY
                        <LABEL_BINARY> (opzionale): percorso del binario imagemagick (magick o convert) se non può essere trovato in $PATH

Parametri HTTP:
  -c, --cookie COOKIE   <COOKIE_STRING> (opzionale): stringa di cookie da aggiungere. Es: -c "JSESSIONID=1234; YOLO=SWAG"
  -a, --header HEADER   <HEADER> (opzionale): intestazione personalizzata o aggiuntiva. Ripeti questa opzione per ogni intestazione. Es: -a "Host:
                        localhost" -a "Foo: bar"
  -u, --http-username HTTP_USERNAME
                        <HTTP_USERNAME> (opzionale): specifica un nome utente per l'autenticazione HTTP Basic.
  -b, --http-password HTTP_PASSWORD
                        <HTTP_PASSWORD> (opzionale): specifica una password per l'autenticazione HTTP Basic.

Parametri di connessione:
  -P, --proxy PROXY     <PROXY> (opzionale): specifica un proxy. Es: -P http://proxy.company.com:8080
  -A, --proxy-auth PROXY_AUTH
                        <PROXY_AUTH> (opzionale): fornisce informazioni di autenticazione per il proxy. Es: -A user:password
  -T, --proxy-type PROXY_TYPE
                        <PROXY_TYPE> (opzionale): specifica il tipo di proxy, "http" (default), "none" (disabilita completamente), o
                        "socks5". Es: -T socks
  -t, --timeout TIMEOUT
                        <TIMEOUT> (opzionale): timeout di esecuzione del renderer in secondi (default 30 sec)

Esempi

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


Esecuzione predefinita con una lista
-----------------------------
$ python webscreenshot.py -i list.txt
webscreenshot.py versione 2.3

[+] 4 URL da screenshotare
[+] 4 screenshot URL effettivi
[+] 0 errore(i)


Esecuzione predefinita con un singolo URL
-----------------------------------
$ python webscreenshot.py -v google.fr
webscreenshot.py versione 2.3

[INFO][Generale] 'google.fr' è stato formattato come 'http://google.fr:80' con le opzioni di overriding fornite
[+] 1 URL da screenshotare
[INFO][http://google.fr:80] Screenshot OK

[+] 1 screenshot URL effettivo
[+] 0 errore(i)


Esecuzione con livello di verbosità aumentato
-----------------------------------
$ python webscreenshot.py -i list.txt -v
webscreenshot.py versione 2.3

[INFO][Generale] 'http://google.fr' è stato formattato come 'http://google.fr:80' con le opzioni di overriding fornite
[INFO][Generale] 'https://216.58.213.131' è stato formattato come 'https://216.58.213.131:443' con le opzioni di overriding fornite
[INFO][Generale] '216.58.213.131' è stato formattato come 'http://216.58.213.131:80' con le opzioni di overriding fornite
[INFO][Generale] 'https://duckduckgo.com/robots.txt' è stato formattato come 'https://duckduckgo.com:443/robots.txt' con le opzioni di overriding fornite
[+] 4 URL da screenshotare
[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 screenshot URL effettivi
[+] 0 errore(i)


Risultati
-------
$ ls -l screenshots/
totale 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

Opzioni supportate dai renderer

Le opzioni non elencate qui sotto sono supportate da tutti i renderer attuali

Requisiti

  • Un interprete Python con versione 2.7 o 3.X
  • Lo script python webscreenshot:
    • Il modo più semplice per configurarlo: pip install webscreenshot e poi usa direttamente $ webscreenshot
    • Oppure clona il repository con git e pip install -r requirements.txt e poi python webscreenshot.py
  • Lo strumento PhantomJS con almeno la versione 2: segui la guida all'installazione e controlla le FAQ se necessario
  • Chrome, Chromium o Firefox > 57 se vuoi usare uno di questi renderer
  • xvfb se vuoi eseguire webscreenshot in un OS headless: usa l'opzione --no-xserver di webscreenshot per semplificare tutto
  • Il binario ImageMagick (magick o convert) se vuoi incorporare l'URL negli screenshot con l'opzione --label: segui la

Changelog

  • versione 2.96/2.97 - 10/19/2025: Rimozione supporto Python v2
  • versione 2.95 - 10/18/2025: Correzione bug phantomjs quando non trova la configurazione OpenSSL
  • versione 2.94 - 08/23/2020: Aggiunte opzioni custom-js e file di output singolo
  • versione 2.93 - 08/16/2020: Aggiunto supporto per Python 3.8 e Microsoft Edge Chromium; output file per webscreenshot falliti; limitazione lunghezza nome file per URL lunghi
  • versione 2.92 - 06/21/2020: Rilevamento automatico opzione no_xserver
  • versione 2.91 - 05/08/2020: Correzione modalità Multiprotocol
  • versione 2.9 - 01/26/2020: Alcune correzioni
  • versione 2.8 - 01/11/2020: Alcune correzioni, aggiunte opzioni timeout ajax + ritaglio + dimensione etichetta + font etichetta, modificati valori predefiniti per ajaxTimeout e maxTimeout
  • versione 2.7 - 01/04/2020: Aggiunta opzione di incorporamento URL nello screenshot
  • versione 2.6 - 12/27/2019: Alcune correzioni
  • versione 2.5 - 09/22/2019: Aggiunte opzioni qualità e formato immagine, aggiornato useragent PhantomJS, supporto TLD moderni
  • versione 2.4 - 05/30/2019: Alcune correzioni per supporto Windows
  • versione 2.3 - 05/19/2019: Compatibilità Python 3, aggiunto renderer Firefox, aggiunta opzione no-xserver
  • versione 2.2 - 08/13/2018: Supporto renderer Chrome e Chromium e supporto singolo URL
  • versione 2.1 - 01/14/2018: Aggiunta opzione Multiprotocol e pacchettizzazione PyPI
  • versione 2.0 - 03/08/2017: Aggiunta opzione proxy-type
  • versione 1.9 - 01/10/2017: Utilizzo di TUTTI i cifrari SSL/TLS
  • versione 1.8 - 07/05/2015: Definizione gruppi di opzioni
  • versione 1.7 - 06/28/2015: Supporto autenticazione HTTP basic + opzione loglevel cambiata in verbosity
  • versione 1.6 - 04/23/2015: Correzione sfondo trasparente
  • versione 1.5 - 01/11/2015: Supporto cookie e intestazione HTTP personalizzata
  • versione 1.4 - 10/12/2014: Integrazione script PhantomJS url-to-image + corretti alcuni bug
  • versione 1.3 - 08/05/2014: Supporto Windows + corretti alcuni bug
  • versione 1.2 - 04/27/2014: Corretti alcuni bug
  • versione 1.1 - 04/21/2014: Modificato script per usare PhantomJS invece del binario wkhtml soggetto a bug
  • versione 1.0 - 01/12/2014: Commit iniziale

Copyright e licenza

webscreenshot è software libero: puoi ridistribuirlo e/o modificarlo secondo i termini della GNU General Public License come pubblicata dalla Free Software Foundation, versione 3 della Licenza, o (a tua scelta) qualsiasi versione successiva.

webscreenshot è distribuito nella speranza che possa essere utile, ma SENZA ALCUNA GARANZIA; senza nemmeno la garanzia implicita di COMMERCIABILITÀ o IDONEITÀ PER UN PARTICOLARE SCOPO.

Vedere la GNU General Public License per maggiori dettagli.

Dovresti aver ricevuto una copia della GNU General Public License insieme a webscreenshot. In caso contrario, visita http://www.gnu.org/licenses/.

Contatto

  • Thomas Debize < tdebize at mail d0t com >
Scarica lo strumento
Categoria opzioneOpzioneRenderer PhantomJSRenderer Chromium / Chrome / Edge ChromiumRenderer Firefox
Parametri screenshot
formato (-f)SìNoNo
qualità (-q)SìNoNo
timeout ajax e richieste (--ajax-max-timeouts)SìNoNo
ritaglio (--crop)SìNoNo
JavaScript personalizzato (--custom-js)SìNoNo
Parametri HTTP
cookie (-c)SìNoNo
intestazione (-a)SìNoNo
http_username (-u)SìNoNo
http_password (-b)SìNoNo
Parametri di connessione
proxy (-P)SìSìNo
proxy_auth (-A)SìNoNo
proxy_type (-T)SìSìNo
Capacità di screenshotare un sito HTTPS con un certificato non firmato pubblicamenteSìNoNo
guida all'installazione
  • Controlla le FAQ prima di segnalare problemi