Overview
Exploit-DB is a public archive of exploits and vulnerable software maintained by Offensive Security (the creators of Kali Linux). It is the definitive repository for proof-of-concept exploit code, shellcode, and technical vulnerability papers. Each entry is classified by platform, type, and associated CVE identifier. The archive includes both verified exploits (tested by Offensive Security staff) and community submissions, with a searchable database dating back to the 1990s.
For OSINT and vulnerability intelligence, Exploit-DB provides concrete evidence of exploitability. While the NVD catalogs vulnerabilities, Exploit-DB shows whether working exploit code exists in the wild, making it critical for risk assessment and prioritization during attack surface analysis. The distinction between a theoretical vulnerability and one with a publicly available exploit is the difference between a medium-priority patch and an emergency remediation.
The archive is frequently cited in security advisories, penetration testing reports, and academic research. Its longevity and community trust make it the de facto standard for exploit code publication and archival.
Data Coverage
| Data Type | Description |
|---|---|
| Exploit Code | Working proof-of-concept exploit code in multiple languages |
| CVE Mapping | Associated CVE identifiers for each exploit |
| Platform/Type | Target OS, application, and exploit type classification |
| Verification Status | Whether Offensive Security verified the exploit |
| Shellcode | Platform-specific shellcode payloads (x86, x64, ARM, MIPS) |
| GHDB Dorks | Google search queries that find vulnerable systems |
| Papers | Technical vulnerability research papers and write-ups |
| Author | Exploit author and original disclosure information |
Exploit Classification Taxonomy
Exploit-DB classifies entries across multiple dimensions, enabling precise filtering for intelligence workflows:
| Category | Types | Description |
|---|---|---|
| Platform | Windows, Linux, macOS, iOS, Android, Hardware | Target operating system or platform |
| Type | Local, Remote, WebApps, DoS | Attack vector classification |
| Language | Python, C, Ruby, PHP, JavaScript, Assembly | Exploit implementation language |
| Verification | Verified, Unverified | Offensive Security testing status |
| Date Range | 1990s - Present | Historical archive depth |
Google Hacking Database (GHDB)
The GHDB is a specialized subset of Exploit-DB containing Google search queries (dorks) that reveal exposed sensitive information, vulnerable systems, and misconfigured services. Categories include:
| GHDB Category | Description | Example Use |
|---|---|---|
| Footholds | Queries revealing entry points | Login portals, admin panels |
| Files | Exposed sensitive files | Backup archives, configuration files |
| Directories | Open directory listings | Unprotected file shares |
| Vulnerable Servers | Known vulnerable software versions | Specific CMS versions |
| Error Messages | Information-leaking error pages | Database errors, stack traces |
| Network Data | Exposed network information | Firewall rules, VPN configurations |
Integration with Prismatic
Prismatic Platform integrates Exploit-DB as a critical exploitability intelligence source. When Shodan, Censys, or BinaryEdge detect services with known software versions, the platform automatically queries Exploit-DB to determine whether public exploits exist.
# Search exploits by keyword
{:ok, results} = ExploitDb.search("Apache 2.4.49")
# => [
# %{
# edb_id: 50383,
# title: "Apache HTTP Server 2.4.49 - Path Traversal & RCE",
# cve: "CVE-2021-41773",
# type: :webapps,
# platform: :multiple,
# verified: true,
# date_published: ~D[2021-10-07],
# author: "Ash Daulton",
# language: :python
# }
# ]
# Search by CVE identifier
{:ok, exploits} = ExploitDb.by_cve("CVE-2021-44228")
# => [%{edb_id: 50592, title: "Apache Log4j 2 - RCE", ...}, ...]
# Get exploit details with code
{:ok, exploit} = ExploitDb.get(50383)
# => %{
# edb_id: 50383,
# title: "Apache HTTP Server 2.4.49 - Path Traversal & RCE",
# code: "#!/usr/bin/env python3\n...",
# verified: true,
# platform: :multiple,
# type: :webapps
# }
# Search GHDB dorks
{:ok, dorks} = ExploitDb.search_ghdb("WordPress", category: :footholds)
# Search shellcode by platform
{:ok, shellcodes} = ExploitDb.search_shellcode(platform: :linux_x86_64)
# Bulk CVE-to-exploit mapping
{:ok, mapping} = ExploitDb.bulk_cve_check([
"CVE-2021-44228", "CVE-2023-34362", "CVE-2024-3094"
])Vulnerability Risk Assessment Pipeline
defmodule PrismaticPerimeter.Vulnerability.ExploitAssessment do
@moduledoc """
Assesses vulnerability exploitability by correlating detected
software versions with public exploit availability.
"""
def assess_exploitability(domain) do
with {:ok, services} <- Shodan.host_search("hostname:#{}"),
{:ok, technologies} <- BuiltWith.lookup(domain),
{:ok, cves} <- map_to_cves(services, technologies),
{:ok, exploits} <- check_exploit_availability(cves) do
{:ok, %{
domain: domain,
detected_services: length(services),
total_cves: length(cves),
exploitable_cves: Enum.count(exploits, & &1.has_exploit),
verified_exploits: Enum.count(exploits, & &1.verified),
critical_exploitable: filter_critical_exploitable(cves, exploits),
risk_score: calculate_exploit_risk(cves, exploits),
prioritized_patches: prioritize_by_exploitability(cves, exploits)
}}
end
end
defp check_exploit_availability(cves) do
cves
|> Enum.map(fn cve ->
case ExploitDb.by_cve(cve.id) do
{:ok, exploits} ->
%{cve: cve, has_exploit: true, verified: any_verified?(exploits),
exploit_count: length(exploits)}
{:error, :not_found} ->
%{cve: cve, has_exploit: false, verified: false, exploit_count: 0}
end
end)
|> then(&{:ok, &1})
end
endExploit Availability Impact on Security Ratings
The existence of public exploits significantly impacts how the Prismatic Perimeter security rating engine scores vulnerabilities:
| Exploit Status | CVSS Adjustment | Rating Impact |
|---|---|---|
| No public exploit | Base CVSS score | Standard weighting |
| Unverified exploit | CVSS + 1.0 | Moderate increase |
| Verified exploit | CVSS + 2.0 | Significant increase |
| Active exploitation (CISA KEV) | CVSS + 3.0 | Critical -- immediate action |
API Access and Data Retrieval
Exploit-DB provides its data through multiple channels, each suited to different integration patterns:
| Access Method | Description | Best For |
|---|---|---|
| Web Interface | Full-text search with filtering at exploit-db.com | Manual research |
| searchsploit | CLI tool (included in Kali Linux) for offline search | Air-gapped environments |
| Git Repository | Raw database as a Git repo for bulk access | Full mirror, CI/CD integration |
| RSS Feeds | New exploit notifications | Real-time alerting |
| GHDB API | Programmatic access to Google dork database | Automated reconnaissance |
searchsploit Usage
The searchsploit tool provides offline access to the full Exploit-DB archive, essential for environments where real-time internet access is restricted:
searchsploit apache 2.4.49 # Search by keyword
searchsploit -t "path traversal" # Title-only search
searchsploit --cve CVE-2021-44228 # Search by CVE
searchsploit -m 50383 # Mirror exploit to current directory
searchsploit -u # Update local database
searchsploit --json apache 2.4 # JSON output for automationRate Limits and Access
| Aspect | Details |
|---|---|
| Authentication | None required for public access |
| Rate Limit | No official limit for web; Git clone for bulk |
| Data Format | HTML (web), text (exploits), JSON (searchsploit) |
| Cost | Completely free and open source |
| Update Frequency | Daily community submissions |
| Archive Size | 45,000+ exploits, 1,500+ shellcodes, 3,000+ papers |
Use Cases
Vulnerability Prioritization
- Assess whether vulnerabilities discovered in target infrastructure are actively exploitable
- Prioritize patching based on public exploit availability rather than CVSS alone
- Combine with CISA Known Exploited Vulnerabilities (KEV) catalog for urgency assessment
- Feed exploitability data into Prismatic Perimeter risk scores
Security Assessment Preparation
- Red team assessment preparation using known exploits for detected services
- Identify Google dorks that expose sensitive information on target domains
- Correlate detected software versions with known working exploits
- Map the complete exploit landscape for a target's technology stack
Threat Intelligence
- Track new exploit publications for technologies used by monitored organizations
- Monitor exploit trends to identify emerging attack vectors
- Correlate exploit publications with observed attack patterns in GreyNoise
- Feed exploit timeline data into threat intelligence reports
Compliance and Reporting
- Provide evidence-based vulnerability risk assessments for compliance audits
- Document exploitability status in NIS2 security measure validations
- Support SOC 2 vulnerability management program documentation
Related Sources
- NVD - NIST National Vulnerability Database for CVE details
- Shodan - Service detection revealing exploitable software
- Censys - Internet-wide scanning for vulnerability context
- BuiltWith - Technology detection identifying target software
- VirusTotal - Malware analysis for exploit payloads
- URLhaus - Malware distribution tracking related to exploit delivery
- GreyNoise - Mass exploitation campaign detection
Related Platform Components
- OSINT Core - Core OSINT framework and adapter layer
- Prismatic Perimeter - Vulnerability data in EASM security ratings
Connect & Contribute
Created by Tomáš Korcak (korczis) | Open Source under GHL