
Vulners डेटाबेस से सार्वजनिक exploits खोजें और डाउनलोड करें — ऑनलाइन, या स्थानीय SQLite FTS5 इंडेक्स से पूरी तरह ऑफ़लाइन।
Vulners डेटाबेस से सार्वजनिक एक्सप्लॉइट खोजें और डाउनलोड करें — ऑनलाइन, या स्थानीय इंडेक्स से पूरी तरह ऑफ़लाइन।
API कुंजी पाएँ · Vulners खोज · चेंजलॉग · आर्किटेक्चर · सुरक्षा नीति

--update पूरे एक्सप्लॉइट कॉर्पस का
स्थानीय SQLite FTS5 इंडेक्स बनाता है; हर बाद की खोज एक स्थानीय क्वेरी है।wordpress 4.7, CVE-2024-3094 और ms17-010
शाब्दिक रूप से मेल खाते हैं, जबकि एक जानबूझकर फुल-टेक्स्ट एक्सप्रेशन को पूर्ण FTS5 सिंटैक्स मिलता है।--mirror हर एक्सप्लॉइट की बॉडी को उसकी अपनी फ़ाइल में लिखता है।Getsploit को Python 3.11 या उससे नया चाहिए।
$ pipx install getsploit
$ uv tool install getsploit
$ python -m pip install getsploit
अपने Vulners खाते में एक कुंजी बनाएँ, फिर इसे एनवायरनमेंट के माध्यम से उपलब्ध कराएँ:
$ export VULNERS_API_KEY="your-key" # pragma: allowlist secret
$env:VULNERS_API_KEY = "your-key" # pragma: allowlist secret
getsploit --set-key एक छिपे हुए पुष्टिकरण संकेत के माध्यम से Getsploit होम के अंतर्गत एक निजी फ़ाइल में कुंजी संग्रहीत करता है। एनवायरनमेंट उस फ़ाइल पर वरीयता लेता है और स्वचालन के लिए बेहतर विकल्प है। कोई --api-key विकल्प नहीं है: कमांड लाइन पर दी गई कुंजी शेल इतिहास और प्रोसेस सूची में समाप्त हो जाती है।
ऑनलाइन खोज और --update के लिए कुंजी आवश्यक है। --local और --status के लिए नहीं।
$ getsploit CVE-2024-3094
$ getsploit "wordpress 4.7 remote code execution" --count 25
क्वेरी Vulners तक अपरिवर्तित पहुँचती है, इसलिए इसका Lucene सिंटैक्स दस्तावेज़ित अनुसार काम करता है:
$ getsploit 'title:wordpress AND description:"code execution"'
100 से ऊपर --count को पारदर्शी रूप से पेज किया जाता है; एक एकल API प्रतिक्रिया कभी भी 100 से अधिक दस्तावेज़ नहीं ले जाती।
$ 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
सामान्य खोज शब्दों का शाब्दिक मिलान किया जाता है, इसलिए पहचानकर्ता और संस्करण संख्याएँ जैसे टाइप की गईं वैसे ही काम करती हैं: wordpress 4.7, CVE-2024-3094, ms17-010। जो क्वेरी कॉलम फ़िल्टर, बूलियन ऑपरेटर, उद्धरण, कोष्ठक, * या ^ का उपयोग करती है, उसे SQLite FTS5 एक्सप्रेशन माना जाता है और गलत होने पर अपनी स्वयं की त्रुटि रिपोर्ट करती है:
$ getsploit --local 'title:eternalblue AND NOT description:metasploit'
खोज योग्य कॉलम हैं id, title, published, description और source_data। पुरानी sourceData: वर्तनी अभी भी स्वीकार की जाती है।
$ getsploit --mirror wordpress 4.7
$ getsploit --local --mirror eternalblue
फ़ाइलें क्वेरी से व्युत्पन्न एक निर्देशिका में रखी जाती हैं, प्रति एक्सप्लॉइट एक फ़ाइल, बिना सिमलिंक का अनुसरण किए बनाई जाती हैं और कभी भी पहले से मौजूद किसी चीज़ को अधिलेखित नहीं करती हैं।
[!WARNING] मिरर की गई फ़ाइलें अविश्वसनीय तृतीय-पक्ष कोड हैं। उन्हें चलाने से पहले पढ़ें।
$ getsploit --format json CVE-2024-3094
$ getsploit --format jsonl wordpress | jq -r .id
$ getsploit wordpress > results.tsv # redirected output is tab-separated
--json, --format json का उर्फ (alias) बना हुआ है।
$ getsploit --color always query | less -R
$ getsploit --color never query
रंग डिफ़ॉल्ट रूप से auto होता है। चौड़ा टर्मिनल एक तालिका दिखाता है, संकरा टर्मिनल स्टैक्ड रिकॉर्ड दिखाता है, और रीडायरेक्ट की गई स्ट्रीम को टैब-सेपरेटेड मान मिलते हैं — तीनों में समान डेटा।
पूर्ण विकल्प सूची के लिए getsploit --help चलाएँ।
एक अपडेट आठ समानांतर रेंज कनेक्शनों पर संग्रह डाउनलोड करता है, उसे गंतव्य के पास अनपैक और परिवर्तित करता है, सत्यापित करता है, और उसके बाद ही कमिट करता है। मेमोरी उपयोग संग्रह के आकार पर निर्भर नहीं करता। पुराने डेटाबेस के विरुद्ध पहले से चल रही खोज बिना किसी व्यवधान के उसी पर समाप्त होती है।
Getsploit 2.x द्वारा निर्मित डेटाबेस खोजने योग्य बने रहते हैं; अगला --update उन्हें FTS4 से FTS5 में माइग्रेट करता है। FTS4 समीपता अभिव्यक्तियाँ जैसे one NEAR/5 two को FTS5 के NEAR(...) रूप में फिर से लिखा जाना चाहिए।
| Python | 3.11, 3.12, 3.13, 3.14 |
| ऑपरेटिंग सिस्टम | Linux, macOS, Windows |
| Vulners SDK | 4.1 और नए 4.x |
| रनटाइम निर्भरताएँ |
$ git clone https://github.com/vulnersCom/getsploit.git
$ cd getsploit
$ uv sync --all-groups
$ make check
CONTRIBUTING.md में योगदान नियम हैं और ARCHITECTURE.md में मॉड्यूल सीमाएँ और डेटाबेस इनवेरिएंट हैं।
एक रिलीज़ एक पुश किया गया v<version> टैग है। वहाँ से रिलीज़ वर्कफ़्लो टैग किए गए कमिट पर पूरा गेट फिर से चलाता है, विश्वसनीय प्रकाशन (trusted publishing) के माध्यम से PyPI पर प्रकाशित करता है, और चेंजलॉग से GitHub रिलीज़ लिखता है। लीक होने के लिए कोई PyPI टोकन मौजूद नहीं है।
एक्सप्लॉइट स्रोत फ़ाइलें अविश्वसनीय सामग्री हैं: उन्हें खोलने या चलाने से पहले समीक्षा करें। Getsploit स्वयं कभी भी डाउनलोड की गई चीज़ को निष्पादित नहीं करता।
रिलीज़ GitHub Actions से PyPI विश्वसनीय प्रकाशन के माध्यम से प्रकाशित होती हैं, इसलिए लीक होने के लिए कोई दीर्घकालिक API टोकन मौजूद नहीं है, और हर आर्टिफैक्ट के साथ एक बिल्ड प्रोवेनेंस प्रमाणन (build provenance attestation) होता है। Getsploit में किसी भेद्यता की रिपोर्ट करने के लिए, SECURITY.md का पालन करें।
MIT © Vulners टीम और योगदानकर्ता।
| स्थान | ~/.getsploit/getsploit.db, या $GETSPLOIT_HOME |
| प्रारूप | बाहरी-सामग्री FTS5 इंडेक्स के साथ SQLite |
| टोकनाइज़र | unicode61 remove_diacritics 2 |
| आकार | पूरे कॉर्पस के लिए लगभग 1.7 GB |
| अपडेट | एटॉमिक: नया डेटाबेस पुराने डेटाबेस को एक ही ऑपरेशन में प्रतिस्थापित करता है |
click, rich, vulners |
| कमांड | उद्देश्य |
|---|
make format | स्रोत फ़ाइलों को फ़ॉर्मेट और ऑटोफ़िक्स करें |
make lint | फ़ॉर्मेटिंग, लिंट और प्रकार जाँचें |
make test | परीक्षण समानांतर चलाएँ |
make coverage | 100% स्टेटमेंट और ब्रांच कवरेज लागू करें |
make leaks | ट्रैक की गई फ़ाइलों में गोपनीय जानकारी (secrets) स्कैन करें |
make build | व्हील और सोर्स डिस्ट्रीब्यूशन बनाएँ |
make release | हर गेट चलाएँ और दोनों डिस्ट्रीब्यूशन सत्यापित करें |
make check | वह सब कुछ जो मर्ज को गेट करता है |