{"adoption": {"forks": 453, "observed_at": "2026-08-28T04:04:43.518679+00:00", "stars": 1435}, "canonical_url": "https://ross.abutalabs.com/products/dnslog", "card": {"archived": true, "artifact_type": "service", "description": "DNSLog 是一款监控 DNS 解析记录和 HTTP 访问记录的工具。", "domain": ["security", "penetration-testing", "networking", "self-hosted"], "enriched": true, "function": ["monitoring", "logging", "web-framework", "self-hosted"], "health_score": 10, "homepage": null, "language": "Python", "license": null, "license_family": "other", "maturity": "maintenance", "member_repos": ["BugScanTeam/DNSLog"], "name": "BugScanTeam/DNSLog", "platform": ["python", "self-hosted"], "pushed_at": "2018-11-14T09:07:59+00:00", "repo": "BugScanTeam/DNSLog", "stars": 1435, "tags": ["dnslog", "dns-monitoring", "blind-xss", "ssrf-detection", "out-of-band", "security-testing", "django", "web-server", "linux"], "topics": [], "urls": [], "use_cases": ["detect blind ssrf vulnerabilities with dns callbacks", "self-host a dns log server for pentesting", "monitor dns resolution records for a domain", "track http access logs for out-of-band payloads", "verify blind sql injection via dns exfiltration", "set up a dns server to catch oob interactions"], "what_it_is": "DNSLog is a self-hosted tool that monitors DNS resolution records and HTTP access logs, built on Django with an integrated DNS server. It is primarily used to detect blind injection vulnerabilities (e.g., SSRF, blind SQLi, RCE) via out-of-band callbacks.", "when_to_avoid": ["you need a maintained tool with active updates and modern framework support", "you cannot obtain a dedicated domain with customizable NS records and a public IP", "you only need a quick hosted service without infrastructure setup"], "when_to_choose": ["you need a self-hosted out-of-band detection tool for blind vulnerability testing", "you want full control over your dns and http logging infrastructure", "you are integrating oob detection into an automated scanning workflow"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/dnslog", "repo": "BugScanTeam/DNSLog", "role": "main", "score": 10}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:04:43.518679+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T04:36:49.954877+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d503bd636af260c0276bad27b3c8a95cd49f0e4e16e7e137f67e8490b8368783", "fetched_at": "2026-08-28T04:04:43.518679+00:00", "kind": "readme", "missing": false, "url": "https://github.com/BugScanTeam/DNSLog"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:04:43.518679+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T04:36:49.954877+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d503bd636af260c0276bad27b3c8a95cd49f0e4e16e7e137f67e8490b8368783", "fetched_at": "2026-08-28T04:04:43.518679+00:00", "kind": "readme", "missing": false, "url": "https://github.com/BugScanTeam/DNSLog"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T04:36:49.954877+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d503bd636af260c0276bad27b3c8a95cd49f0e4e16e7e137f67e8490b8368783", "fetched_at": "2026-08-28T04:04:43.518679+00:00", "kind": "readme", "missing": false, "url": "https://github.com/BugScanTeam/DNSLog"}], "taxonomy_version": 1}, "health_score": {"inputs": ["days_since_push", "days_since_release", "archived"], "kind": "computed", "method": "health_v1"}, "homepage": {"kind": "observed", "observed_at": "2026-08-28T04:04:43.518679+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:04:43.518679+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:04:43.518679+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T04:36:49.954877+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d503bd636af260c0276bad27b3c8a95cd49f0e4e16e7e137f67e8490b8368783", "fetched_at": "2026-08-28T04:04:43.518679+00:00", "kind": "readme", "missing": false, "url": "https://github.com/BugScanTeam/DNSLog"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:04:43.518679+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:04:43.518679+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T04:36:49.954877+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d503bd636af260c0276bad27b3c8a95cd49f0e4e16e7e137f67e8490b8368783", "fetched_at": "2026-08-28T04:04:43.518679+00:00", "kind": "readme", "missing": false, "url": "https://github.com/BugScanTeam/DNSLog"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:04:43.518679+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:04:43.518679+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:04:43.518679+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T04:36:49.954877+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d503bd636af260c0276bad27b3c8a95cd49f0e4e16e7e137f67e8490b8368783", "fetched_at": "2026-08-28T04:04:43.518679+00:00", "kind": "readme", "missing": false, "url": "https://github.com/BugScanTeam/DNSLog"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:04:43.518679+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:04:43.518679+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T04:36:49.954877+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d503bd636af260c0276bad27b3c8a95cd49f0e4e16e7e137f67e8490b8368783", "fetched_at": "2026-08-28T04:04:43.518679+00:00", "kind": "readme", "missing": false, "url": "https://github.com/BugScanTeam/DNSLog"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T04:36:49.954877+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d503bd636af260c0276bad27b3c8a95cd49f0e4e16e7e137f67e8490b8368783", "fetched_at": "2026-08-28T04:04:43.518679+00:00", "kind": "readme", "missing": false, "url": "https://github.com/BugScanTeam/DNSLog"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T04:36:49.954877+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d503bd636af260c0276bad27b3c8a95cd49f0e4e16e7e137f67e8490b8368783", "fetched_at": "2026-08-28T04:04:43.518679+00:00", "kind": "readme", "missing": false, "url": "https://github.com/BugScanTeam/DNSLog"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T04:36:49.954877+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d503bd636af260c0276bad27b3c8a95cd49f0e4e16e7e137f67e8490b8368783", "fetched_at": "2026-08-28T04:04:43.518679+00:00", "kind": "readme", "missing": false, "url": "https://github.com/BugScanTeam/DNSLog"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 0, "longevity": 100, "rhythm": 35}, "computed_at": "2026-09-02T17:46:02.011165+00:00", "flags": ["no_releases", "archived", "no_license"], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 3771, "days_push": 2849, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 10, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}