{"adoption": {"forks": 1081, "observed_at": "2026-08-28T04:08:41.404483+00:00", "stars": 4291}, "canonical_url": "https://ross.abutalabs.com/products/exphub", "card": {"archived": false, "artifact_type": "library", "description": "Exphub[漏洞利用脚本库] 包括Webloigc、Struts2、Tomcat、Nexus、Solr、Jboss、Drupal的漏洞利用脚本，最新添加CVE-2020-14882、CVE-2020-11444、CVE-2020-10204、CVE-2020-10199、CVE-2020-1938、CVE-2020-2551、CVE-2020-2555、CVE-2020-2883、CVE-2019-17558、CVE-2019-6340", "domain": ["security", "penetration-testing", "developer-tools"], "enriched": true, "function": ["penetration-testing", "security", "vulnerability-scanning"], "health_score": 20, "homepage": null, "language": "Python", "license": null, "license_family": "other", "maturity": "abandoned", "member_repos": ["zhzyker/exphub"], "name": "zhzyker/exphub", "platform": ["python", "cli"], "pushed_at": "2021-04-04T09:13:57+00:00", "repo": "zhzyker/exphub", "stars": 4291, "tags": ["exploit-scripts", "poc", "cve", "rce", "webshell", "getshell", "red-team", "vulnerability-exploitation", "linux"], "topics": ["weblogic", "tomcat", "exploit", "poc", "vulnerability", "exp", "webshell", "drupal", "getshell", "nexus", "cve-2020-10199", "cve-2020-2555", "cve-2020-11444", "cve-2020-10204", "cve-2020-1938", "cve-2020-2883", "cve-2020-2551", "cve-2020-5902", "cve-2020-14882"], "urls": [], "use_cases": ["verify whether a server is vulnerable to a specific CVE", "exploit a Weblogic deserialization RCE to get a reverse shell", "upload a webshell to a vulnerable Tomcat instance", "test Fast versions for deserialization vulnerabilities", "run a quick poc check during a penetration test"], "what_it_is": "Exphub is a collection of standalone Python, Java, PHP, and shell exploit scripts for known CVE vulnerabilities in products like Weblogic, Struts2, Tomcat, Fast, Nexus, Solr, JBoss, and Drupal. Each script verifies (poc) or exploits (exp/rce/shell/webshell) a specific vulnerability.", "when_to_avoid": ["you need an actively maintained tool with new CVE coverage (development stopped in 2021; the author moved to vulmap)", "you want a unified scanner rather than one script per vulnerability", "you require a project with a clear license for commercial or compliance-sensitive use"], "when_to_choose": ["you need a ready-made, tested exploit script for a specific CVE in Weblogic, Struts2, Tomcat, Fast, or similar middleware", "you want lightweight single-purpose scripts rather than a full scanning framework", "you are doing authorized penetration testing or CTF challenges against these products"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/exphub", "repo": "zhzyker/exphub", "role": "main", "score": 32}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:08:41.404483+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-29T18:21:53.916591+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "22ebb650b17c857eb3bed1ac465a1c892396b768ddb2a43ec757d0257bf8600b", "fetched_at": "2026-08-28T04:08:41.404483+00:00", "kind": "readme", "missing": false, "url": "https://github.com/zhzyker/exphub"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:08:41.404483+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-29T18:21:53.916591+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "22ebb650b17c857eb3bed1ac465a1c892396b768ddb2a43ec757d0257bf8600b", "fetched_at": "2026-08-28T04:08:41.404483+00:00", "kind": "readme", "missing": false, "url": "https://github.com/zhzyker/exphub"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-29T18:21:53.916591+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "22ebb650b17c857eb3bed1ac465a1c892396b768ddb2a43ec757d0257bf8600b", "fetched_at": "2026-08-28T04:08:41.404483+00:00", "kind": "readme", "missing": false, "url": "https://github.com/zhzyker/exphub"}], "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:08:41.404483+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:08:41.404483+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:08:41.404483+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-29T18:21:53.916591+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "22ebb650b17c857eb3bed1ac465a1c892396b768ddb2a43ec757d0257bf8600b", "fetched_at": "2026-08-28T04:08:41.404483+00:00", "kind": "readme", "missing": false, "url": "https://github.com/zhzyker/exphub"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:08:41.404483+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:08:41.404483+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-29T18:21:53.916591+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "22ebb650b17c857eb3bed1ac465a1c892396b768ddb2a43ec757d0257bf8600b", "fetched_at": "2026-08-28T04:08:41.404483+00:00", "kind": "readme", "missing": false, "url": "https://github.com/zhzyker/exphub"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:08:41.404483+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:08:41.404483+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:08:41.404483+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-29T18:21:53.916591+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "22ebb650b17c857eb3bed1ac465a1c892396b768ddb2a43ec757d0257bf8600b", "fetched_at": "2026-08-28T04:08:41.404483+00:00", "kind": "readme", "missing": false, "url": "https://github.com/zhzyker/exphub"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:08:41.404483+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:08:41.404483+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-29T18:21:53.916591+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "22ebb650b17c857eb3bed1ac465a1c892396b768ddb2a43ec757d0257bf8600b", "fetched_at": "2026-08-28T04:08:41.404483+00:00", "kind": "readme", "missing": false, "url": "https://github.com/zhzyker/exphub"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-29T18:21:53.916591+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "22ebb650b17c857eb3bed1ac465a1c892396b768ddb2a43ec757d0257bf8600b", "fetched_at": "2026-08-28T04:08:41.404483+00:00", "kind": "readme", "missing": false, "url": "https://github.com/zhzyker/exphub"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-29T18:21:53.916591+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "22ebb650b17c857eb3bed1ac465a1c892396b768ddb2a43ec757d0257bf8600b", "fetched_at": "2026-08-28T04:08:41.404483+00:00", "kind": "readme", "missing": false, "url": "https://github.com/zhzyker/exphub"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-29T18:21:53.916591+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "22ebb650b17c857eb3bed1ac465a1c892396b768ddb2a43ec757d0257bf8600b", "fetched_at": "2026-08-28T04:08:41.404483+00:00", "kind": "readme", "missing": false, "url": "https://github.com/zhzyker/exphub"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 0, "longevity": 100, "rhythm": 35}, "computed_at": "2026-09-02T17:46:02.011165+00:00", "flags": ["no_releases", "no_license"], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 2345, "days_push": 1977, "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}}