
CLI moderne pour explorer les données de vulnérabilité avec de puissantes capacités de recherche, filtrage et analyse.

# 1. Get vulnx
go install github.com/projectdiscovery/vulnx/v2/cmd/vulnx@latest
# 2. Explore commands
vulnx --help
vulnx search --help
# 3. Start exploring vulnerabilities (no API key required)
vulnx filters # See all available search fields
vulnx search apache # Basic search (subject to rate limits)
# 4. Set up your API key (recommended to avoid rate limits)
vulnx auth # Get free API key at https://cloud.projectdiscovery.io
# 5. Enhanced exploration with higher limits
vulnx search apache # No rate limits
vulnx id CVE-2021-44228 # Faster responses
Rechercher des vulnérabilités avec précision :
vulnx search "severity:critical && is_remote:true"
vulnx search "apache || nginx" --limit 20
vulnx search "cvss_score:>8.0 && cve_created_at:2024"
Obtenir des informations détaillées sur les vulnérabilités :
vulnx id CVE-2021-44228
vulnx id CVE-2024-1234 --json
Analyser les tendances des vulnérabilités :
vulnx analyze --fields severity
vulnx analyze --fields affected_products.vendor
Formats de sortie :
vulnx search "apache" --json # JSON lisible par machine
vulnx search "apache" --output results.json # Sauvegarder dans un fichier
vulnx search "apache" --silent # Sortie silencieuse
Contrôle de la recherche :
vulnx search "apache" --limit 50 # Obtenir 50 résultats
vulnx search "apache" --sort-desc cvss_score # Trier par score CVSS
vulnx search "apache" --fields cve_id,severity # Champs spécifiques uniquement
Recherche avancée :
vulnx search --term-facets severity=5,tags=10 "apache"
vulnx search --range-facets numeric:cvss_score:high:8:10 "remote"
vulnx search --highlight "apache" # Activer la surbrillance dans la recherche
vulnx search --facet-size 20 "nginx" # Plus de compartiments de facettes
vulnx search --detailed "xss" # Sortie détaillée comme la commande 'id'
Explorez ce sur quoi vous pouvez effectuer une recherche :
vulnx filters # Afficher tous les champs de recherche disponibles
vulnx filters --json # Liste des champs lisible par machine
vulnx filters --output fields.json # Sauvegarder les informations des champs dans un fichier
La commande filters affiche des informations détaillées sur tous les champs interrogeables, notamment :
Exemple de sortie :
Field: severity
Data Type: string
Description: Vulnerability severity level (e.g., critical, high, medium, low, info)
Can Sort: Yes
Facet Possible: Yes
Search Analyzer: keyword-lower
Examples: severity:critical, severity:high
Enum Values: critical, high, medium, low, info, unknown
Total: 69 filters available
Utilisez cette commande pour découvrir de nouvelles possibilités de recherche et comprendre la syntaxe des champs avant de construire des requêtes complexes.
Trouver les vulnérabilités à haut risque :
vulnx search "severity:critical && is_remote:true && is_kev:true"
vulnx search "cvss_score:>8.0 && cve_created_at:>=2024" # Score CVSS élevé à partir de 2024
vulnx search "is_kev:true && age_in_days:<90" # Exploits KEV récents
Rechercher par technologie :
vulnx search "apache" # Vulnérabilités Apache
vulnx search "apache || nginx" # Plusieurs technologies
vulnx search "affected_products.vendor:microsoft" # Par éditeur
Filtrer par sévérité et scores :
vulnx search "severity:high" # Sévérité haute
vulnx search "cvss_score:>7.0" # Score CVSS supérieur à 7
vulnx search "epss_score:>0.8" # Score EPSS élevé
Recherches temporelles :
vulnx search "cve_created_at:>=2024" # Publié en 2024 ou après
vulnx search "cve_created_at:>=2024-01-01 && cve_created_at:<2024-07-01" # Premier semestre 2024
vulnx search "age_in_days:<30" # Vulnérabilités récentes (30 derniers jours)
Trouver les vulnérabilités exploitables :
vulnx search "is_poc:true" # Possède une preuve de concept
vulnx search "is_kev:true" # Vulnérabilités connues exploitées
vulnx search "is_template:true" # Possède des modèles Nuclei
vulnx search --detailed "log4j" # Analyse détaillée d'une vulnérabilité spécifique
Filtrage par produit et éditeur :
vulnx search --product apache,nginx # Filtrer par produits (cherche dans les champs éditeur et produit)
vulnx search --vendor microsoft,oracle # Filtrer par éditeurs uniquement
vulnx search "NOT apache" # Exclure des produits à l'aide de la syntaxe de requête
vulnx search "NOT affected_products.vendor:microsoft" # Exclure des éditeurs à l'aide de la syntaxe de requête
Sévérité et scores :
vulnx search --severity critical,high # Filtrer par sévérité
vulnx search "NOT severity:low" # Exclure des sévérités à l'aide de la syntaxe de requête
vulnx search --cvss-score ">8.0" # Filtrer par score CVSS
vulnx search --epss-score ">0.8" # Filtrer par score EPSS
vulnx search --vuln-status confirmed # Filtrer par statut
vulnx search --vuln-age "<30" # Vulnérabilités récentes
Caractéristiques des exploits :
vulnx search --kev # Vulnérabilités KEV uniquement
vulnx search --template # Possède des modèles Nuclei
vulnx search --poc # Possède une preuve de concept
vulnx search --hackerone # Signalé sur HackerOne
vulnx search --remote-exploit # Exploitable à distance
Plusieurs méthodes de saisie :
# Recherche d'un seul identifiant
vulnx id CVE-2024-1234
# Plusieurs identifiants (séparés par des virgules)
vulnx id CVE-2024-1234,CVE-2024-5678,CVE-2023-9999
# Détection automatique depuis l'entrée standard (pas besoin de la commande 'id' !)
echo "CVE-2024-1234" | vulnx
echo -e "CVE-2024-1234\nCVE-2024-5678" | vulnx
# Entrée depuis un fichier
vulnx id --file ids.txt
Traitement par lots :
# Sortie JSON pour l'automatisation
vulnx id --json CVE-2024-1234 CVE-2024-5678
# Sauvegarder dans un fichier
vulnx id --output vulns.json --file ids.txt
# Intégration dans un pipeline
cat report.txt | grep -o 'CVE-[0-9]\{4\}-[0-9]\+' | vulnx id --json
Recherches de base :
vulnx search "apache" # Terme simple
vulnx search "remote code execution" # Recherche d'expression
vulnx search "severity:critical" # Recherche par champ
Logique booléenne :
vulnx search "apache && nginx" # Les deux termes
vulnx search "apache || nginx" # L'un ou l'autre terme
vulnx search "apache NOT tomcat" # Exclure un terme
vulnx search "(apache || nginx) && severity:high" # Regroupement
Plages et caractères génériques :
vulnx search "cvss_score:>8.0" # Supérieur à
vulnx search "cvss_score:<9.0" # Inférieur à
vulnx search "cve_created_at:>=2024-01-01" # Comparaison de dates
vulnx search "age_in_days:<30" # Vulnérabilités récentes
vulnx search "apache*" # Caractère générique
Important : Les champs de date nécessitent des opérateurs de comparaison (>=, >, <, <=).
Comparaisons de dates simples :
vulnx search "cve_created_at:>=2024" # CVE à partir de 2024
vulnx search "cve_created_at:<2024" # CVE avant 2024
vulnx search "cve_created_at:>2024-06-01" # CVE après le 1er juin 2024
Plages de dates :
# CVE de janvier 2024 uniquement
vulnx search "cve_created_at:>=2024-01-01 && cve_created_at:<2024-02-01"
# CVE à score CVSS élevé de 2024
vulnx search "cvss_score:>8.0 && cve_created_at:>=2024"
# Vulnérabilités récentes (basées sur l'âge)
vulnx search "age_in_days:<30" # 30 derniers jours
vulnx search "age_in_days:>365" # Plus d'un an
Formats pris en charge :
2024 (année)2024-01 (année-mois)2024-01-15 (date complète)vulnx fonctionne sans clé API, mais l'authentification offre des avantages significatifs :
⚠️ Sans clé API :
✅ Avec clé API :
Configurer l'authentification :
vulnx auth # Configuration interactive
vulnx auth --api-key VOTRE_CLE_API # Non interactive (automatisation)
vulnx auth --test # Tester la clé API actuelle
export PDCP_API_KEY="votre-cle-ici" # Variable d'environnement
Modes d'authentification :
vulnx auth - Configuration guidée avec invitesvulnx auth --api-key CLE - Parfait pour l'automatisation/CI/CDvulnx auth --test - Valider la configuration actuelleGestion des versions :
vulnx version # Afficher la version et vérifier les mises à jour
vulnx version --disable-update-check # Afficher la version sans vérifier les mises à jour
vulnx update # Mettre à jour vers la dernière version
vulnx --update # Commande de mise à jour alternative
Options globales :
vulnx --json search "apache" # Sortie JSON
vulnx --silent search "apache" # Pas de bannière
vulnx --timeout 60s search "apache" # Délai d'attente personnalisé
vulnx --disable-update-check search "apache" # Désactiver les vérifications automatiques de mise à jour
Problèmes de limite de débit :
Rate limit exceeded! API key required for higher limits.
→ Run: vulnx auth to configure API key and get higher limits
Configuration pour l'automatisation/CI/CD :
# Conteneurs Docker
vulnx auth --api-key "$SECRET_API_KEY"
# Pipelines CI/CD
vulnx auth --api-key "${PDCP_API_KEY}"
# Conteneurs d'initialisation Kubernetes
vulnx auth --api-key "$(cat /secrets/api-key)"
# Tester l'authentification dans les scripts
vulnx auth --test && echo "Auth OK" || echo "Auth failed"
Suggestions pour les limites de débit :
Configure API key with 'vulnx auth' to avoid rate limits
→ This appears when no API key is configured. To remove:
1. Set up API key: vulnx auth
2. Or use --silent flag to suppress informational messages
Aucun résultat :
vulnx search "is_kev:true" --limit 1 # Tester avec des résultats connus
vulnx healthcheck # Vérifier la connectivité
Jeux de résultats volumineux :
vulnx search "apache" --limit 100 # Augmenter la limite
vulnx search "apache" --offset 100 # Pagination
vulnx search --fields cve_id,severity "apache" # Moins de champs
Problèmes de connexion :
vulnx --timeout 60s search "apache" # Augmenter le délai d'attente
vulnx --proxy http://localhost:8080 search "apache" # Utiliser un proxy
vulnx --debug search "apache" # Mode débogage
Commandes d'aide (aucune clé API requise) :
vulnx --help # Aperçu de toutes les commandes
vulnx search --help # Aide pour la commande search
vulnx id --help # Aide pour la commande id
vulnx filters --help # Aide pour la commande filters
vulnx analyze --help # Aide pour la commande analyze
vulnx version # Informations de version avec vérification des mises à jour
vulnx version --disable-update-check # Informations de version sans vérification des mises à jour
Exploration des données (soumise aux limites de débit sans clé API) :
vulnx filters # Afficher tous les champs interrogeables
vulnx search help # Champs de recherche détaillés
vulnx analyze help # Champs d'analyse disponibles
⚠️ Remarque Toutes les commandes fonctionnent sans clé API, mais sont soumises à des limites de débit. Configurez une clé API avec
vulnx authpour des limites plus élevées et de meilleures performances.
vulnx search apachevulnx auth pour une utilisation intensive--disable-update-check pour désactivervulnx filters pour découvrir tous les champs de recherche disponibles et leur syntaxe--json pour les scripts et l'automatisationanalyze pour comprendre les tendances des donnéesPour des modèles d'utilisation avancés et des exemples, consultez USAGE.md.
Pour la configuration de développement, les contrôles de qualité du code et les directives de contribution, consultez DEVELOPMENT.md.
vulnx est distribué sous licence MIT.
| Commande | Objectif | Exemple |
|---|
search | Trouver des vulnérabilités avec des filtres avancés | vulnx search "apache && severity:high" |
id | Obtenir les détails d'un CVE spécifique | vulnx id CVE-2021-44228 |
filters | Lister tous les champs et filtres de recherche disponibles | vulnx filters |
analyze | Agréger les données par champs | vulnx analyze -f severity |
auth | Configurer l'accès API | vulnx auth |
version | Afficher les informations de version et vérifier les mises à jour | vulnx version |
update | Mettre à jour vulnx vers la dernière version | vulnx update |
healthcheck | Tester la connectivité | vulnx healthcheck |
| Option | Court | Description | Exemple |
|---|
--product | -p | Filtrer par produits | --product apache,nginx |
--vendor | Filtrer par éditeurs | --vendor microsoft,oracle | |
--severity | -s | Filtrer par sévérité | --severity critical,high |
--tags | Filtrer par tags | --tags rce,injection | |
--cvss-score | Filtrer par score CVSS | --cvss-score ">8.0" | |
--epss-score | Filtrer par score EPSS | --epss-score ">0.8" | |
--vuln-age | -a | Filtrer par âge | --vuln-age "<30" |
--vuln-type | Filtrer par type de vulnérabilité | --vuln-type sql_injection | |
--kev | Vulnérabilités KEV uniquement | --kev | |
--template | -t | Possède des modèles Nuclei | --template |
--poc | Possède une preuve de concept | --poc | |
--hackerone | Signalé sur HackerOne | --hackerone | |
--remote-exploit | Exploitable à distance | --remote-exploit | |
--vuln-status | Filtrer par statut de la vulnérabilité | --vuln-status confirmed |
| Option | Court | Description | Exemple |
|---|
--detailed | Sortie détaillée comme la commande 'id' | --detailed | |
--highlight | Activer la surbrillance dans la recherche | --highlight | |
--limit | -n | Nombre de résultats | --limit 50 |
--offset | Décalage de pagination | --offset 100 | |
--sort-asc | Trier par ordre croissant | --sort-asc cvss_score | |
--sort-desc | Trier par ordre décroissant | --sort-desc cve_created_at | |
--fields | Sélectionner des champs spécifiques | --fields cve_id,severity | |
--term-facets | Calculer les facettes de termes | --term-facets severity=5 | |
--range-facets | Calculer les facettes de plage | --range-facets numeric:cvss_score:high:8:10 | |
--facet-size | Nombre de compartiments de facettes | --facet-size 20 |
| Champ | Description | Exemples de valeurs |
|---|
severity | Sévérité de la vulnérabilité | low, medium, high, critical |
cvss_score | Score CVSS (0-10) | 7.5, >8.0, <9.0 |
cve_id | Identifiant CVE | CVE-2021-44228 |
is_remote | Exploitable à distance | true, false |
is_kev | Vulnérabilité connue exploitée | true, false |
is_poc | Possède une preuve de concept | true, false |
affected_products.vendor | Nom de l'éditeur | apache, microsoft |
affected_products.product | Nom du produit | tomcat, windows |
cve_created_at | Date de publication | >=2024, >2024-01-01, <2023 |
age_in_days | Jours depuis la publication | <30, >365, <=90 |