zzzteph/Dutch_Gov_Scope
zzzteph/Dutch_Gov_Scope has 47 GitHub stars and 7 forks. GitHot measured 0 stars in 24 hours. Last checked 2026-11-15 04:19 UTC. Last push 2026-11-13.
Measured star growth
- in 24h
- 0
- in 7 days
- Collecting history
- in 15 days
- Collecting history
- in 1 month
- Collecting history
Net star changes over overlapping periods, not daily totals. Missing measurements are left blank. Stars measure attention, not software quality.
About
Dutch Government Bugbounty scope, subdomains and endpoints
SecurityREADME.md
OriginalDutch Government Bug Bounty Scope
Welcome to the repository dedicated to collecting and maintaining a precise list of the Dutch government's bug bounty scope. This includes domains and subdomains.
This is NOT an official bug bounty scope.
To report a vulnerability or to learn more about Coordinated Vulnerability Disclosure (CVD), visit:
π https://www.ncsc.nl/contact/kwetsbaarheid-melden
Overview
This project aims to provide the most accurate and detailed list of domains and subdomains that are in scope of the Dutch government's bug bounty program. By mapping and monitoring relevant infrastructure, the goal is to support the security and visibility of government digital assets.
What is in scope?
This repository focuses on verified, government-related .nl resources. Each domain is included only after passing a multi-tier verification pipeline:
- HTTP + SSL signals: Meta tags (
overheid:authority,rijksoverheid.org), legal accessibility statements (toegankelijkheidsverklaring.nl), government analytics infrastructure, SSL certificate organisation field. - Rendered DOM check: Browser-rendered page (Playwright) to catch SPAs β same signal checks after JavaScript executes.
- Visual identity check: Claude vision on a page screenshot β confirms the standard Rijksoverheid header (dark navy bar, Dutch coat of arms, pink stripe) or equivalent agency branding as the site's own identity.
How It Works
All analysis runs via GitHub Actions. Results are stored as plain text files in the repository.
Domain scope maintenance β
engine/refresh_rijksoverheid.py:- Monthly sync with the official Register Internetdomeinen Overheid
(successor of the CommunicatieRijk websiteregister) via
engine/overheid_domeinen.py, which walks every category and reads its Domeinnaamregistraties and Domeinen CSV exports β only.nlroot domains are kept, and lapsed registrations are skipped. The harvester never decides ownership itself. - New domains are verified through the three-tier pipeline (
engine/verify_rijksoverheid.py) - Confirmed domains β
scope/rijksoverheid.txt; rejected/uncertain βscope/rijksoverheid_invalid.txt
- Monthly sync with the official Register Internetdomeinen Overheid
(successor of the CommunicatieRijk websiteregister) via
IP range attribution β
engine/resolve_asn.py:- Resolves scope hosts to IPs, looks each announcing prefix up on bgp.he.net
- Adds a range to
ip.txtonly when the prefix description explicitly names a Dutch government body (Ministerie van β¦,Rijkswaterstaat,Politie, β¦). A government site hosted at AWS or KPN does not make that provider's range government-owned. - Near misses are reported rather than silently dropped, so the match list stays deliberate
python engine/resolve_asn.py --source all --applyScope re-validation β
engine/revalidate_scope.py:- Runs the whole chain in one pass: collect candidates β verify β reconcile β ASN sweep
- Re-runs the three-tier pipeline over the top-level domains already in both scope files
- Re-sorts them on the fresh verdicts: rejected in-scope domains are demoted, confirmed
rejects are promoted back. A
manual_reviewverdict never drops a domain that is currently in scope β a timeout is not evidence of non-ownership. - Every run appends to
scope/verification_log.jsonland writes achanges.mdreport
python engine/revalidate_scope.py --source all --concurrency 20 python engine/revalidate_scope.py --source candidates.txt --dry-runSubdomain discovery β runs daily via GitHub Actions:
- Subfinder with inline DNS validation (
-active) on a rotating 3% slice of scope (with overlap) - Results merged into per-domain storage files and aggregated
- Subfinder with inline DNS validation (
Repository Structure
scope/rijksoverheid.txtβ Verified Rijksoverheid root domainsstorage/subdomains.txtβ All discovered subdomains (combined)storage/rijksoverheid/subdomains.txtβ Subdomains under Rijksoverheid domains
Scanning examples
curl --silent https://raw.githubusercontent.com/zzzteph/DutchGovScope/refs/heads/main/storage/rijksoverheid/subdomains.txt | ./nuclei -silent -id geoserver-login-panel
curl --silent https://raw.githubusercontent.com/zzzteph/DutchGovScope/refs/heads/main/storage/rijksoverheid/subdomains.txt | ./nuclei -silent -id exposure -severity critical,high
Scanning via Docker
curl --silent https://raw.githubusercontent.com/zzzteph/DutchGovScope/refs/heads/main/storage/rijksoverheid/subdomains.txt -o subdomains.txt && docker run -v "$PWD:/data" --rm projectdiscovery/nuclei -silent -id geoserver-login-panel -l /data/subdomains.txt
Links and Acknowledgements
- Bug Bounty Dutch Government Scope β Gist
- overheid.nl
- Register Internetdomeinen Overheid
- ncsc.nl
- NCSC Wall of Fame
To report a vulnerability or learn more, please visit:
π https://www.ncsc.nl/contact/kwetsbaarheid-melden