gowitness is a website screenshot utility written in Golang, that uses Chrome Headless to generate screenshots of web interfaces using the command line, with a handy report viewer to process results. Both Linux and macOS is supported, with Windows support mostly working.
quay.io/trickest/gowitness:v3.0.5
--file
A file with targets to scan--port
Ports on targets to scan. Supports multiple --port flags (default [80,443])--delay
Number of seconds delay between navigation and screenshotting (default 3)--quiet
Silence (almost all) logging--driver
The scan driver to use. Can be one of [gorod, chromedp] (default chromedp)--no-http
Do not add 'http://' to targets where missing--threads
Number of concurrent threads (goroutines) to use (default 6)--timeout
Number of seconds before considering a page timed out (default 60)--no-https
Do not add 'https://' to targets where missing--write-db
Write results to a SQLite database--debug-log
Enable debug logging--skip-html
Don't include the first request's HTML response when writing results--write-csv
Write results as CSV (has limited columns)--javascript
A JavaScript function to evaluate on every page, before a screenshot. Note: It must be a JavaScript function! e.g., () => console.log('gowitness');--uri-filter
Valid URIs to pass to the scanning process (default [http,https])--write-none
Use an empty writer to silence warnings--ports-large
Include a large ports list when scanning targets--ports-small
Include a small ports list when scanning targets--write-jsonl
Write results as JSON lines--chrome-proxy
An HTTP/SOCKS5 proxy server to use. Specify the proxy using this format: proto://address:port--ports-medium
Include a medium ports list when scanning targets--save-content
Save content from network requests to the configured writers. WARNING: This flag has the potential to make your storage explode in size--write-db-uri
The database URI to use. Supports SQLite, Postgres, and MySQL (e.g., postgres://user:pass@host:port/db) (default sqlite://gowitness.sqlite3)--write-stdout
Write successful results to stdout (usefull in a shell pipeline)--chrome-header
Extra headers to add to requests. Supports multiple --header flags--chrome-wss-url
A websocket URL to connect to a remote, already running Chrome DevTools instance (i.e., Chrome started with --remote-debugging-port)--chrome-window-x
The Chrome browser window width, in pixels (default 1920)--chrome-window-y
The Chrome browser window height, in pixels (default 1080)--javascript-file
A file containing a JavaScript function to evaluate on every page, before a screenshot. See --javascript--log-scan-errors
Log scan errors (timeouts, DNS errors, etc.) to stderr (warning: can be verbose!)--screenshot-path
Path to store screenshots (default ./screenshots)--chrome-user-agent
The user-agent string to use (default Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/128.0.0.0 Safari/537.36)--screenshot-format
Format to save screenshots as. Valid formats are: jpeg, png (default jpeg)--write-screenshots
Store screenshots with writers in addition to filesystem storage--screenshot-fullpage
Do full-page screenshots, instead of just the viewport--screenshot-skip-save
Do not save screenshots to the screenshot-path (useful together with --write-screenshots)--write-db-enable-debug
Enable database query debug logging (warning: verbose!)