
Cerca e scarica exploit pubblici dal database Vulners — online, oppure completamente offline da un indice locale SQLite FTS5.
Cerca e scarica exploit pubblici dal database Vulners — online, o completamente offline da un indice locale.
Ottieni una chiave API · Ricerca Vulners · Changelog · Architettura · Politica di sicurezza

--update costruisce un indice SQLite FTS5
locale dell'intero corpus di exploit; ogni ricerca successiva è una query locale.wordpress 4.7, CVE-2024-3094 e ms17-010
corrispondono letteralmente, mentre un'espressione full-text intenzionale riceve comunque la
sintassi FTS5 completa.--mirror scrive il corpo di ogni exploit in un proprio file.Getsploit richiede Python 3.11 o successivo.
$ pipx install getsploit
$ uv tool install getsploit
$ python -m pip install getsploit
Crea una chiave nel tuo account Vulners, poi esponila tramite l'ambiente:
$ export VULNERS_API_KEY="your-key" # pragma: allowlist secret
$env:VULNERS_API_KEY = "your-key" # pragma: allowlist secret
getsploit --set-key salva una chiave tramite un prompt di conferma nascosto, in un file
privato nella home di Getsploit. L'ambiente ha la precedenza su quel file ed è la scelta
migliore per l'automazione. Non esiste l'opzione --api-key: una chiave passata sulla riga
di comando finisce nella cronologia della shell e nell'elenco dei processi.
La ricerca online e --update richiedono una chiave. --local e --status no.
$ getsploit CVE-2024-3094
$ getsploit "wordpress 4.7 remote code execution" --count 25
La query arriva a Vulners invariata, quindi la sua sintassi Lucene funziona come documentato:
$ getsploit 'title:wordpress AND description:"code execution"'
--count oltre 100 viene impaginato in modo trasparente; una singola risposta API non
contiene mai più di 100 documenti.
$ getsploit --update # scarica l'archivio e costruisce l'indice FTS5
$ getsploit --status # dov'è, quanto è grande, quanti documenti contiene
$ getsploit --local wordpress 4.7
Le parole di ricerca ordinarie vengono confrontate letteralmente, quindi identificatori e
numeri di versione funzionano come digitati: wordpress 4.7, CVE-2024-3094,
ms17-010. Una query che usa filtri di colonna, operatori booleani, virgolette,
parentesi, * o ^ viene trattata come una
espressione SQLite FTS5 e segnala un proprio errore
quando è malformata:
$ getsploit --local 'title:eternalblue AND NOT description:metasploit'
Le colonne ricercabili sono id, title, published, description e source_data. È
ancora accettata la grafia legacy sourceData:.
$ getsploit --mirror wordpress 4.7
$ getsploit --local --mirror eternalblue
I file finiscono in una directory derivata dalla query, un file per exploit, creati senza seguire symlink e senza mai sovrascrivere nulla che esista già.
[!WARNING] I file replicati sono codice di terze parti non affidabile. Leggili prima di eseguirli.
$ getsploit --format json CVE-2024-3094
$ getsploit --format jsonl wordpress | jq -r .id
$ getsploit wordpress > results.tsv # l'output reindirizzato è separato da tabulazioni
--json resta un alias per --format json.
$ getsploit --color always query | less -R
$ getsploit --color never query
Il colore predefinito è auto. Un terminale largo ottiene una tabella, uno stretto record
impilati e un flusso reindirizzato valori separati da tabulazione — gli stessi dati in
tutti e tre i casi.
Esegui getsploit --help per l'elenco completo delle opzioni.
Un aggiornamento scarica l'archivio tramite otto connessioni di intervallo parallele, lo decomprime e lo converte accanto alla destinazione, lo verifica e solo allora esegue il commit. L'uso della memoria non dipende dalla dimensione dell'archivio. Una ricerca già in esecuzione sul vecchio database termina su di esso senza interferenze.
I database creati da Getsploit 2.x restano ricercabili; il successivo --update li migra
da FTS4 a FTS5. Le espressioni di prossimità FTS4 come one NEAR/5 two devono essere
riscritte nella forma FTS5 NEAR(...).
| Python | 3.11, 3.12, 3.13, 3.14 |
| Sistemi operativi | Linux, macOS, Windows |
| Vulners SDK | 4.1 e versioni 4.x successive |
$ git clone https://github.com/vulnersCom/getsploit.git
$ cd getsploit
$ uv sync --all-groups
$ make check
CONTRIBUTING.md contiene le regole di contribuzione e ARCHITECTURE.md i confini dei moduli e gli invarianti del database.
Una release è un tag v<version> pushato. Da lì
il workflow di release riesegue il gate completo sul
commit taggato, pubblica su PyPI tramite trusted publishing e scrive la release GitHub dal
changelog. Non esiste alcun token PyPI da poter divulgare.
I file sorgente degli exploit sono contenuti non affidabili: rivedili prima di aprirli o eseguirli. Getsploit stesso non esegue mai ciò che scarica.
Le release vengono pubblicate da GitHub Actions tramite PyPI trusted publishing, quindi non esiste alcun token API di lunga durata da divulgare e ogni artefatto porta un'attestazione di provenienza della build. Per segnalare una vulnerabilità in Getsploit, segui SECURITY.md.
MIT © Vulners Team e collaboratori.
| Posizione | ~/.getsploit/getsploit.db, oppure $GETSPLOIT_HOME |
| Formato | SQLite con indice FTS5 a contenuto esterno |
| Tokenizer | unicode61 remove_diacritics 2 |
| Dimensioni | circa 1,7 GB per l'intero corpus |
| Aggiornamento | atomico: il nuovo database sostituisce il vecchio con una singola operazione |
| Dipendenze runtime |
click, rich, vulners |
| Comando | Scopo |
|---|
make format | Formatta e corregge automaticamente i file sorgente |
make lint | Controlla formattazione, lint e tipi |
make test | Esegue i test in parallelo |
make coverage | Applica la copertura del 100% di istruzioni e branch |
make leaks | Scansiona i file tracciati per individuare segreti |
make build | Crea la wheel e la distribuzione sorgente |
make release | Esegue tutti i gate e valida entrambe le distribuzioni |
make check | Tutto quanto sopra che funge da gate per il merge |