nyuuzyou/phishing-snapshots
Phishing & Malware Website Snapshots 136,414 phishing and malware website snapshots captured by a headless Chromium browser between July 24 and August 15, 2024. URLs were confirmed or high-confidence phishing/malware at the time of collection, though some hosts had already been blocked or taken down when the snapshot was taken. Each row contains the full HTML source, extracted visible text, complete network traffic from HAR recording, parsed page features, and resource… See the full description on the dataset page: https://huggingface.co/datasets/nyuuzyou/phishing-snapshots.
Phishing & Malware Website Snapshots
136,414 phishing and malware website snapshots captured by a headless Chromium browser between July 24 and August 15, 2024. URLs were confirmed or high-confidence phishing/malware at the time of collection, though some hosts had already been blocked or taken down when the snapshot was taken. Each row contains the full HTML source, extracted visible text, complete network traffic from HAR recording, parsed page features, and resource fingerprints.
Collected in mid-2024, published March 2026. All of the phishing domains and infrastructure captured here are long dead. The value is in page content, kit patterns, and network behavior rather than live IOCs.
55,339 unique domains, 23,588 of which appear more than once.
Use Cases
- Training phishing/malware classifiers (URL-level, page-level, or multimodal)
- Static rule generation for phishing kit detection
- Threat intelligence on phishing infrastructure and hosting
- Feature engineering for browser-based detection extensions
- Academic research on web-based social engineering
Schema
Single flat Parquet table, 42 columns per row. Nested columns use Parquet list<struct> types.
Identification & Metadata
Page Content
Scripts & Styles
Forms & Inputs
Linked Resources
Network & HTTP
Availability Flags
Nested Struct: network_requests
Each entry: method, url, url_domain, status, mime_type, response_size, server_ip, is_redirect, redirect_url, response_headers (list of key/value structs), request_cookies, response_cookies (with name, domain, httpOnly, secure).
Nested Struct: resource_hashes
Each entry: url, mime_type, resource_type (script / style / image / font / document / other), body_size, body_md5, body_sha256, is_favicon.
Nested Struct: input_fields
Each entry: type, name, placeholder, id, class_name, required, autocomplete.
Nested Struct: meta_tags
Each entry: name, content.
Statistics
Language Distribution (top 10)
Collection Method
A headless Chromium browser (Playwright) running inside Docker, controlled by a Flask API, visited each URL. Per visit:
- Navigate to URL with HAR recording active
- Save rendered HTML (
index.html) - Capture all network requests and responses (
requests.har, HAR 1.2 format) - Extract visible text via trafilatura (
trafilatura.txt) - Compress into a
.7zarchive
During conversion to Parquet, HAR response bodies were hashed (MD5 + SHA256) rather than stored. This reduced the dataset from ~76 GB of raw archives to 2 GB of compressed Parquet. Full HTML and inline JavaScript are preserved.
Archives containing blocked or error pages were excluded. Filtered titles: "403 Forbidden", "Not found", "Attention Required! | Cloudflare", "Suspected phishing site | Cloudflare". Empty and corrupted archives were also removed. 31,793 archives were filtered in total.
Safety
This dataset contains snapshots of malicious websites. The HTML and scripts include:
- Credential harvesting forms that mimic legitimate services
- Obfuscated JavaScript for redirects, fingerprinting, or exploit delivery
- References to attacker-controlled infrastructure
Do not execute JavaScript or render HTML from this dataset in a browser without sandboxing. This data is for defensive security research.
License
CC0-1.0
