
Rechercher et télécharger des exploits publics depuis la base de données Vulners — en ligne, ou entièrement hors ligne à partir d'un index local SQLite FTS5.
Recherchez et téléchargez des exploits publics depuis la base de données Vulners — en ligne, ou entièrement hors ligne depuis un index local.
Obtenir une clé API · Recherche Vulners · Journal des modifications · Architecture · Politique de sécurité

--update construit un index SQLite FTS5 local de
l'ensemble du corpus d'exploits ; toute recherche ultérieure est une requête locale.wordpress 4.7, CVE-2024-3094 et ms17-010
correspondent littéralement, tandis qu'une expression full-text délibérée bénéficie toujours de toute la syntaxe FTS5.--mirror écrit le contenu de chaque exploit dans son propre fichier.Getsploit nécessite Python 3.11 ou plus récent.
$ pipx install getsploit
$ uv tool install getsploit
$ python -m pip install getsploit
Créez une clé dans votre compte Vulners, puis exposez-la via l'environnement :
$ export VULNERS_API_KEY="your-key" # pragma: allowlist secret
$env:VULNERS_API_KEY = "your-key" # pragma: allowlist secret
getsploit --set-key enregistre une clé via une invite de confirmation masquée, dans un fichier privé
situé dans le répertoire personnel de Getsploit. L'environnement a priorité sur ce fichier et constitue le
meilleur choix pour l'automatisation. Il n'existe pas d'option --api-key : une clé passée en ligne de commande
se retrouve dans l'historique du shell et dans la liste des processus.
La recherche en ligne et --update nécessitent une clé. --local et --status n'en nécessitent pas.
$ getsploit CVE-2024-3094
$ getsploit "wordpress 4.7 remote code execution" --count 25
La requête atteint Vulners sans modification, donc sa syntaxe Lucene fonctionne comme documenté :
$ getsploit 'title:wordpress AND description:"code execution"'
--count au-delà de 100 est paginé de manière transparente ; une réponse API unique ne transporte jamais plus de 100 documents.
$ getsploit --update # download the archive and build the FTS5 index
$ getsploit --status # where it is, how big, how many documents
$ getsploit --local wordpress 4.7
Les mots de recherche ordinaires sont mis en correspondance littéralement, donc les identifiants et les numéros
de version fonctionnent tels que saisis : wordpress 4.7, CVE-2024-3094, ms17-010. Une requête
qui utilise des filtres de colonnes, des opérateurs booléens, des guillemets, des parenthèses, * ou ^
est traitée comme une expression SQLite FTS5 et signale sa propre erreur
lorsqu'elle est mal formée :
$ getsploit --local 'title:eternalblue AND NOT description:metasploit'
Les colonnes interrogeables sont id, title, published, description et source_data.
L'ancienne orthographe sourceData: reste acceptée.
$ getsploit --mirror wordpress 4.7
$ getsploit --local --mirror eternalblue
Les fichiers sont placés dans un répertoire dérivé de la requête, un fichier par exploit, créés sans suivre les liens symboliques et sans jamais écraser un fichier existant.
[!WARNING] Les fichiers reflétés sont du code tiers non fiable. Lisez-les avant de les exécuter.
$ getsploit --format json CVE-2024-3094
$ getsploit --format jsonl wordpress | jq -r .id
$ getsploit wordpress > results.tsv # redirected output is tab-separated
--json reste un alias pour --format json.
$ getsploit --color always query | less -R
$ getsploit --color never query
La couleur est définie par défaut sur auto. Un terminal large affiche un tableau, un terminal étroit
affiche des enregistrements empilés, et un flux redirigé affiche des valeurs séparées par des tabulations —
les mêmes données dans les trois cas.
Exécutez getsploit --help pour la liste complète des options.
Une mise à jour télécharge l'archive via huit connexions partielles parallèles, la décompresse et la convertit à côté de la destination, la vérifie, puis ne valide qu'ensuite. L'utilisation de la mémoire ne dépend pas de la taille de l'archive. Une recherche déjà en cours sur l'ancienne base se termine sur celle-ci sans être perturbée.
Les bases construites par Getsploit 2.x restent interrogeables ; le prochain --update les migre de FTS4
vers FTS5. Les expressions de proximité FTS4 telles que one NEAR/5 two doivent être réécrites sous la
forme FTS5 NEAR(...).
| Python | 3.11, 3.12, 3.13, 3.14 |
| Systèmes d'exploitation | Linux, macOS, Windows |
| Vulners SDK | 4.1 et versions 4.x ultérieures |
$ git clone https://github.com/vulnersCom/getsploit.git
$ cd getsploit
$ uv sync --all-groups
$ make check
CONTRIBUTING.md contient les règles de contribution et ARCHITECTURE.md les limites des modules et les invariants de la base de données.
Une publication est un tag v<version> poussé. À partir de là,
le workflow de publication réexécute l'intégralité des vérifications sur le
commit taggé, publie sur PyPI via le trusted publishing, et rédige la release GitHub à partir du journal des
modifications. Aucun jeton PyPI ne peut fuir.
Les fichiers sources d'exploits sont du contenu non fiable : examinez-les avant de les ouvrir ou de les exécuter. Getsploit lui-même n'exécute jamais ce qu'il télécharge.
Les publications sont réalisées depuis GitHub Actions via le trusted publishing PyPI, donc aucun jeton API à longue durée de vie ne peut fuir, et chaque artefact porte une attestation de provenance de build. Pour signaler une vulnérabilité dans Getsploit, suivez SECURITY.md.
MIT © Équipe Vulners et contributeurs.
| Emplacement | ~/.getsploit/getsploit.db, ou $GETSPLOIT_HOME |
| Format | SQLite avec un index FTS5 à contenu externe |
| Tokenizer | unicode61 remove_diacritics 2 |
| Taille | environ 1,7 Go pour l'ensemble du corpus |
| Mise à jour | atomique : la nouvelle base remplace l'ancienne en une seule opération |
| Dépendances d'exécution | click, rich, vulners |
| Commande | Objectif |
|---|
make format | Formate et corrige automatiquement les fichiers sources |
make lint | Vérifie le formatage, le lint et les types |
make test | Exécute les tests en parallèle |
make coverage | Impose 100 % de couverture des instructions et des branches |
make leaks | Recherche les secrets dans les fichiers suivis |
make build | Construit la wheel et la distribution source |
make release | Exécute toutes les vérifications et valide les deux distributions |
make check | Tout ce qui précède et conditionne un merge |