loading
loading
Discovery
A gowitness variant that screenshots web interfaces and outputs a SQLite database.
overview
gowitness-db is the gowitness screenshot utility set to store its results in a SQLite database. It drives headless Chrome across a URL list, captures each web interface, and records the screenshot path, HTTP status, page title, and response headers as rows instead of leaving you a loose folder of images.
A database changes how you triage. Instead of clicking through hundreds of PNGs, you query the capture metadata to find login portals, default admin panels, and which hosts answered 200 versus 403 across a large surface. The render controls match the base tool: worker count with -t, a --delay for JavaScript-heavy pages, --fullpage capture, custom -X and -Y resolution, a --proxy, and a --user-agent.
On Trickest, gowitness-db is a Discovery node that reads a URL list and writes a folder holding the SQLite database and the screenshots. Run it after subdomain discovery and httpx probing so it only shoots hosts that answer, then query the database to rank which interfaces are worth a closer look.
use cases
Screenshot a URL list and land every capture in SQLite, so you filter by HTTP status or page title instead of clicking through hundreds of images.
Drive headless Chrome over thousands of hosts to surface login portals, default admin panels, and exposed consoles, then query the database to decide what to open first.
Set --fullpage, a --delay for JavaScript-heavy apps, custom -X and -Y resolution, a --user-agent, and a --proxy so every interface renders the same way before the shutter fires.
Hand the SQLite database to a reporting or review step so a bulk screenshot run becomes structured data the rest of the pipeline can read and rank.
reference
| Name | Type | Flag | Description |
|---|---|---|---|
| url-list | FILE | -f | file listing the URLs to screenshot |
| threads | STRING | -t | worker threads used to run (default 4) |
| delay | STRING | --delay | delay in seconds between navigation and screenshot |
| fullpage | BOOLEAN | --fullpage | take full-page screenshots |
| proxy | STRING | --proxy | HTTP or SOCKS5 proxy, in proto://address:port form |
| user-agent | STRING | --user-agent | user agent string to send with each request |
| x-resolution | STRING | -X | screenshot width in pixels (default 1440) |
| BOOLEAN | save each screenshot as a PDF as well |
Showing key inputs. gowitness-db exposes 15 inputs in total.
| Name | Type | Flag | Description |
|---|---|---|---|
| url-list | FILE | -f | file listing the URLs to screenshot |
| threads | STRING | -t | worker threads used to run (default 4) |
| timeout | STRING | --timeout | preflight check timeout in seconds (default 10) |
| delay | STRING | --delay | delay in seconds between navigation and screenshot |
| fullpage | BOOLEAN | --fullpage | take full-page screenshots |
| BOOLEAN | save each screenshot as a PDF as well | ||
| x-resolution | STRING | -X | screenshot width in pixels (default 1440) |
| y-resolution | STRING | -Y | screenshot height in pixels (default 900) |
| proxy | STRING | --proxy | HTTP or SOCKS5 proxy to use, in proto://address:port form |
| header | STRING | --header | additional HTTP header to set on each request |
| user-agent | STRING | --user-agent | user agent string to send (default Chrome on macOS) |
| no-http | BOOLEAN | --no-http | do not prefix http:// where it is missing |
| no-https | BOOLEAN | --no-https | do not prefix https:// where it is missing |
| debug | BOOLEAN | --debug | enable debug logging |
| disable-logging | BOOLEAN | --disable-logging | disable all logging |
example
# screenshot a list of live hosts, full-page, 8 workers, into gowitness.sqlite3gowitness file -f live-hosts.txt -t 8 --fullpage --timeout 15 --delay 2INFO[0000] starting gowitnessINFO[0000] using sqlite db at gowitness.sqlite3INFO[0001] preflight result statuscode=200 title="Admin Login" url=https://app.example.comINFO[0001] took screenshot file=screenshots/https-app.example.com.png url=https://app.example.comINFO[0002] preflight result statuscode=200 title="Grafana" url=https://grafana.example.comINFO[0002] took screenshot file=screenshots/https-grafana.example.com.png url=https://grafana.example.comINFO[0003] preflight result statuscode=401 title="" url=https://vpn.example.comINFO[0004] finished screenshots=3 db=gowitness.sqlite3guidance
Use gowitness-db when you want screenshot results in a SQLite database you can query, rather than a folder of images. Run it after discovery and probing so it captures only live hosts. For plain screenshot output, use gowitness; to drive it from nmap XML, use gowitness-nmap.
The base screenshot tool with flexible writers. gowitness-db pins output to a SQLite database from the start.
Feeds gowitness an nmap XML file so it screenshots discovered web services directly.
Screenshots hosts and builds an HTML report. A different way to triage a web surface visually.
faq
related
Check whether a URL redirects to a masked 404 page.
Append lines to a file only if they are not already there.
Extract URLs and endpoints from Android APK files.
Visual inspection of websites across a large number of hosts.
Find suspicious files across a large set of AWS S3 buckets.
An automated tool that checks for backup artifacts that may disclose a web application's source code.
A URL list is probed by httpx, then gowitness-db screenshots the live interfaces and writes them into a queryable SQLite database.
Facts on this page come from the live Trickest tool library.