{"adoption": {"forks": 509, "observed_at": "2026-08-28T04:07:56.504277+00:00", "stars": 3328}, "canonical_url": "https://ross.abutalabs.com/products/fuxploider", "card": {"archived": false, "artifact_type": "cli-tool", "description": "File upload vulnerability scanner and exploitation tool.", "domain": ["security", "penetration-testing", "web-development"], "enriched": true, "function": ["penetration-testing", "vulnerability-scanning", "security"], "health_score": 32, "homepage": null, "language": "Python", "license": "GPL-3.0", "license_family": "copyleft", "maturity": "active", "member_repos": ["almandin/fuxploider"], "name": "almandin/fuxploider", "platform": ["python", "cli", "windows"], "pushed_at": "2025-05-08T09:00:36+00:00", "repo": "almandin/fuxploider", "stars": 3328, "tags": ["file-upload", "web-shell", "pentesting", "exploitation", "web-security", "linux", "macos", "docker"], "topics": ["python3", "pentesting", "exploitation", "takeover", "vulnerability-scanner", "detection"], "urls": [], "use_cases": ["scan a website for file upload vulnerabilities", "test if a file upload form allows web shell uploads", "find which file types an upload endpoint accepts", "automate pentesting of file upload forms", "detect exploitable upload forms during a security assessment"], "what_it_is": "Fuxploider is an open-source penetration testing tool that automates detection and exploitation of file upload form vulnerabilities. It identifies allowed file types and determines the best technique to upload web shells or malicious files to a target web server.", "when_to_avoid": ["you lack explicit permission to test the target (illegal use)", "you need a general-purpose web vulnerability scanner beyond upload flaws"], "when_to_choose": ["you are doing authorized penetration testing on web apps with upload forms", "you need to automate detection of file upload flaws and shell upload techniques"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/fuxploider", "repo": "almandin/fuxploider", "role": "main", "score": 32}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:07:56.504277+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-29T18:41:45.183180+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "213f15e5dfe7ea29b82290fa6ab8128855d1b52f76828f110f09537ed1e59f6a", "fetched_at": "2026-08-28T04:07:56.504277+00:00", "kind": "readme", "missing": false, "url": "https://github.com/almandin/fuxploider"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:07:56.504277+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-29T18:41:45.183180+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "213f15e5dfe7ea29b82290fa6ab8128855d1b52f76828f110f09537ed1e59f6a", "fetched_at": "2026-08-28T04:07:56.504277+00:00", "kind": "readme", "missing": false, "url": "https://github.com/almandin/fuxploider"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-29T18:41:45.183180+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "213f15e5dfe7ea29b82290fa6ab8128855d1b52f76828f110f09537ed1e59f6a", "fetched_at": "2026-08-28T04:07:56.504277+00:00", "kind": "readme", "missing": false, "url": "https://github.com/almandin/fuxploider"}], "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:07:56.504277+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:07:56.504277+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:07:56.504277+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-29T18:41:45.183180+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "213f15e5dfe7ea29b82290fa6ab8128855d1b52f76828f110f09537ed1e59f6a", "fetched_at": "2026-08-28T04:07:56.504277+00:00", "kind": "readme", "missing": false, "url": "https://github.com/almandin/fuxploider"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:07:56.504277+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:07:56.504277+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-29T18:41:45.183180+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "213f15e5dfe7ea29b82290fa6ab8128855d1b52f76828f110f09537ed1e59f6a", "fetched_at": "2026-08-28T04:07:56.504277+00:00", "kind": "readme", "missing": false, "url": "https://github.com/almandin/fuxploider"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:07:56.504277+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:07:56.504277+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:07:56.504277+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-29T18:41:45.183180+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "213f15e5dfe7ea29b82290fa6ab8128855d1b52f76828f110f09537ed1e59f6a", "fetched_at": "2026-08-28T04:07:56.504277+00:00", "kind": "readme", "missing": false, "url": "https://github.com/almandin/fuxploider"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:07:56.504277+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:07:56.504277+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-29T18:41:45.183180+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "213f15e5dfe7ea29b82290fa6ab8128855d1b52f76828f110f09537ed1e59f6a", "fetched_at": "2026-08-28T04:07:56.504277+00:00", "kind": "readme", "missing": false, "url": "https://github.com/almandin/fuxploider"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-29T18:41:45.183180+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "213f15e5dfe7ea29b82290fa6ab8128855d1b52f76828f110f09537ed1e59f6a", "fetched_at": "2026-08-28T04:07:56.504277+00:00", "kind": "readme", "missing": false, "url": "https://github.com/almandin/fuxploider"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-29T18:41:45.183180+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "213f15e5dfe7ea29b82290fa6ab8128855d1b52f76828f110f09537ed1e59f6a", "fetched_at": "2026-08-28T04:07:56.504277+00:00", "kind": "readme", "missing": false, "url": "https://github.com/almandin/fuxploider"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-29T18:41:45.183180+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "213f15e5dfe7ea29b82290fa6ab8128855d1b52f76828f110f09537ed1e59f6a", "fetched_at": "2026-08-28T04:07:56.504277+00:00", "kind": "readme", "missing": false, "url": "https://github.com/almandin/fuxploider"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 20, "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": 3337, "days_push": 482, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 32, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}