{"adoption": {"forks": 492, "observed_at": "2026-08-28T04:05:58.040035+00:00", "stars": 1949}, "canonical_url": "https://ross.abutalabs.com/products/owtf", "card": {"archived": false, "artifact_type": "framework", "description": "Offensive Web Testing Framework (OWTF), is a framework which tries to unite great tools and make pen testing more efficient http://owtf.org https://twitter.com/owtfp", "domain": ["security", "penetration-testing", "web-development"], "enriched": true, "function": ["security", "penetration-testing", "web-framework", "developer-tools"], "health_score": 79, "homepage": "https://medium.com/@owtf ", "language": "TypeScript", "license": "BSD-3-Clause", "license_family": "permissive", "maturity": "active", "member_repos": ["owtf/owtf"], "name": "owtf/owtf", "platform": ["python"], "pushed_at": "2026-08-22T05:35:06+00:00", "repo": "owtf/owtf", "stars": 1949, "tags": ["owasp", "pentest", "kali-linux", "web-application-security", "vulnerability-scanning", "security-testing", "linux", "macos", "docker"], "topics": ["security", "owasp", "owtf", "python", "pentest", "kali-linux", "framework", "web-application-security"], "urls": [], "use_cases": ["run automated web application penetration tests aligned with OWASP standards", "orchestrate multiple security tools from a single framework during pentests", "find and verify web vulnerabilities efficiently within tight assessment windows", "perform targeted fuzzing on risky areas of a web application", "generate pentest reports mapped to OWASP Testing Guide and PTES", "create custom security test plugins without deep development experience"], "what_it_is": "OWASP OWTF (Offensive Web Testing Framework) is a penetration testing framework that unites multiple security tools and aligns testing workflows with standards like the OWASP Testing Guide, OWASP Top 10, PTES, and NIST. It is highly configurable, allowing testers to add plugins and tests without prior development experience.", "when_to_avoid": ["you need a fully automated scanner with no human expertise involved", "you are not comfortable interpreting raw tool output and security findings", "you need a lightweight one-off vulnerability scan rather than a full framework", "your environment cannot run Docker or PostgreSQL dependencies"], "when_to_choose": ["you are a penetration tester working on web application assessments", "you want testing workflows aligned with OWASP, PTES, or NIST standards", "you need to combine multiple security tools into one efficient pipeline", "you work on Kali Linux or a Debian derivative and want a ready-made pentest framework"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/owtf", "repo": "owtf/owtf", "role": "main", "score": 67}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:05:58.040035+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T03:06:54.606962+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "0ae01c0c046586858bdb0516c20fe17a2ce354eaadfb061691bbbf10b313b53c", "fetched_at": "2026-08-28T04:05:58.040035+00:00", "kind": "readme", "missing": false, "url": "https://github.com/owtf/owtf"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:05:58.040035+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T03:06:54.606962+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "0ae01c0c046586858bdb0516c20fe17a2ce354eaadfb061691bbbf10b313b53c", "fetched_at": "2026-08-28T04:05:58.040035+00:00", "kind": "readme", "missing": false, "url": "https://github.com/owtf/owtf"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T03:06:54.606962+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "0ae01c0c046586858bdb0516c20fe17a2ce354eaadfb061691bbbf10b313b53c", "fetched_at": "2026-08-28T04:05:58.040035+00:00", "kind": "readme", "missing": false, "url": "https://github.com/owtf/owtf"}], "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:05:58.040035+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:05:58.040035+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:05:58.040035+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T03:06:54.606962+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "0ae01c0c046586858bdb0516c20fe17a2ce354eaadfb061691bbbf10b313b53c", "fetched_at": "2026-08-28T04:05:58.040035+00:00", "kind": "readme", "missing": false, "url": "https://github.com/owtf/owtf"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:05:58.040035+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:05:58.040035+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T03:06:54.606962+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "0ae01c0c046586858bdb0516c20fe17a2ce354eaadfb061691bbbf10b313b53c", "fetched_at": "2026-08-28T04:05:58.040035+00:00", "kind": "readme", "missing": false, "url": "https://github.com/owtf/owtf"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:05:58.040035+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:05:58.040035+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:05:58.040035+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T03:06:54.606962+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "0ae01c0c046586858bdb0516c20fe17a2ce354eaadfb061691bbbf10b313b53c", "fetched_at": "2026-08-28T04:05:58.040035+00:00", "kind": "readme", "missing": false, "url": "https://github.com/owtf/owtf"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:05:58.040035+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:05:58.040035+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T03:06:54.606962+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "0ae01c0c046586858bdb0516c20fe17a2ce354eaadfb061691bbbf10b313b53c", "fetched_at": "2026-08-28T04:05:58.040035+00:00", "kind": "readme", "missing": false, "url": "https://github.com/owtf/owtf"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T03:06:54.606962+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "0ae01c0c046586858bdb0516c20fe17a2ce354eaadfb061691bbbf10b313b53c", "fetched_at": "2026-08-28T04:05:58.040035+00:00", "kind": "readme", "missing": false, "url": "https://github.com/owtf/owtf"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T03:06:54.606962+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "0ae01c0c046586858bdb0516c20fe17a2ce354eaadfb061691bbbf10b313b53c", "fetched_at": "2026-08-28T04:05:58.040035+00:00", "kind": "readme", "missing": false, "url": "https://github.com/owtf/owtf"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T03:06:54.606962+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "0ae01c0c046586858bdb0516c20fe17a2ce354eaadfb061691bbbf10b313b53c", "fetched_at": "2026-08-28T04:05:58.040035+00:00", "kind": "readme", "missing": false, "url": "https://github.com/owtf/owtf"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 99, "longevity": 100, "rhythm": 8}, "computed_at": "2026-09-02T17:46:02.011165+00:00", "flags": [], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 5340, "days_push": 11, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 67, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}