
NoSql Injection CLI टूल, MongoDB का उपयोग करके कमजोर वेबसाइटों को खोजने के लिए।
एक तेज़ NoSQL स्कैनर और इंजेक्टर। विशेष रूप से Mongo में NoSQL इंजेक्शन के प्रति संवेदनशील साइटों को खोजने के लिए।
मैं एक बेहतर nosql इंजेक्शन टूल चाहता था जो उपयोग में सरल, पूरी तरह से कमांड लाइन आधारित और कॉन्फ़िगरेबल हो। इसके लिए, मैंने nosqli पर काम शुरू किया - Go में लिखा गया एक सरल nosql इंजेक्शन टूल। इसका उद्देश्य तेज़, सटीक और अत्यधिक उपयोगी होना है, जिसमें एक समझने में आसान कमांड लाइन इंटरफ़ेस हो।
Nosqli वर्तमान में Mongodb के लिए nosql इंजेक्शन का पता लगाने का समर्थन करता है। यह निम्नलिखित परीक्षण चलाता है:
अपने ऑपरेटिंग सिस्टम के लिए नवीनतम बाइनरी संस्करण डाउनलोड करें, और इसे अपने PATH में स्थापित करें, या स्थानीय फ़ोल्डर से चलाएं।
मैं डेटा निष्कर्षण सुविधाएँ जोड़ने की योजना बना रहा हूँ। यदि आप अन्य सुविधाएँ या कॉन्फ़िगरेशन विकल्प देखना चाहते हैं, तो कृपया एक पुल रिक्वेस्ट या इश्यू खोलें!
यह कमांड चलाकर और सहायता फ़ाइलों को पढ़कर स्व-दस्तावेजित होना चाहिए।
$ nosqli
NoSQLInjector is a CLI tool for testing Datastores that
do not depend on SQL as a query language.
nosqli aims to be a simple automation tool for identifying and exploiting
NoSQL Injection vectors.
Usage:
nosqli [command]
Available Commands:
help Help about any command
scan Scan endpoint for NoSQL Injection vectors
version Prints the current version
Flags:
--config string config file (default is $HOME/.nosqli.yaml)
-d, --data string Specify default post data (should not include any injection strings)
-h, --help help for nosqli
-p, --proxy string Proxy requests through this proxy URL. Defaults to HTTP_PROXY environment variable.
-r, --request string Load in a request from a file, such as a request generated in Burp or ZAP.
-t, --target string target url eg. http://site.com/page?arg=1
-u, --user-agent string Specify a user agent
Use "nosqli [command] --help" for more information about a command.
$ nosqli scan -t http://localhost:4000/user/lookup?username=test
Running Error based scan...
Running Boolean based scan...
Found Error based NoSQL Injection:
URL: http://localhost:4000/user/lookup?=&username=test
param: username
Injection: username='
आप मेरे संवेदनशील node js ऐप या अन्य nosql इंजेक्शन लैब का उपयोग करके टूल का परीक्षण कर सकते हैं।
लक्ष्य URL चुनते समय, सुनिश्चित करें कि सभी परीक्षण योग्य पैरामीटर URL में मौजूद हैं। उदाहरण के लिए, मान लें कि एक साइट पर /user/lookup पर एक पृष्ठ है जिसमें खोजने के लिए एक फॉर्म है। फ़ील्ड में कुछ डेटा दर्ज करने के बाद, URL बदलकर /user/lookup?username= हो जाता है। यदि आप केवल /user/lookup स्कैन करते हैं, तो टूल को संभावित इंजेक्शन नहीं मिलेंगे। सही ढंग से स्कैन करने के लिए, सुनिश्चित करें कि सभी पैरामीटर के साथ पूर्ण URL का उपयोग किया गया है (इस मामले में /user/lookup?username=)।
यदि आप स्रोत से निर्माण करना पसंद करते हैं, या आपके प्लेटफ़ॉर्म के लिए कोई संकलित बाइनरी नहीं है, तो आप रिपॉजिटरी को क्लोन करके, निर्भरताएं स्थापित करके और प्रोजेक्ट को मैन्युअल रूप से बनाकर ऐसा कर सकते हैं। इसके लिए एक हालिया Go संस्करण और उपयुक्त GOPATH पर्यावरण चर की आवश्यकता होगी।
$ git clone https://github.com/Charlie-belmer/nosqli
$ cd nosqli
$ go get -u -d ./...
$ go install
$ nosqli -h
एक अच्छा परीक्षण सूट शामिल है। मूल निर्देशिका से go test का उपयोग करके यूनिट परीक्षण और सरल इंजेक्शन कवरेज चलाया जा सकता है:
go test ./...
एकीकरण परीक्षण भी उपलब्ध हैं जो स्थानीय रूप से चल रहे ज्ञात संवेदनशील ऐप्स के खिलाफ इंजेक्शन चलाते हैं। एकीकरण परीक्षणों का उपयोग करने के लिए, संवेदनशील nodejs Mongo इंजेक्शन ऐप और digininja से मेरा संवेदनशील PHP लैब फोर्क स्थापित करें और चलाएं। प्रत्येक साइट पर जाकर DB को रीसेट करना याद रखें! फिर इंटीग्रेशन फ्लैग पास करें:
go test ./... -args -integrations=true
यदि कोई भी वातावरण नहीं मिलता है, तो एकीकरण परीक्षण एक परीक्षण मामले द्वारा अक्षम कर दिए जाएंगे, परीक्षण चलाने की गति बढ़ाने के लिए।
योगदान का स्वागत है! कृपया एक पुल रिक्वेस्ट सबमिट करें या चर्चा के लिए एक इश्यू खोलें।
जब तक आप अन्यथा निर्दिष्ट नहीं करते, यह समझा जाता है कि आप nosqli प्रोजेक्ट को अपने योगदान किए गए कोड का पुन: उपयोग, संशोधन और पुनर्लाइसेंस करने का असीमित, गैर-अनन्य अधिकार दे रहे हैं। यह प्रोजेक्ट हमेशा ओपन सोर्स उपलब्ध रहेगा, लेकिन यह महत्वपूर्ण है क्योंकि कोड को पुनर्लाइसेंस करने में असमर्थता ने अन्य मुफ्त सॉफ्टवेयर प्रोजेक्ट्स (जैसे KDE और NASM) के लिए विनाशकारी समस्याएं पैदा की हैं। यदि आप अपने योगदानों की विशेष लाइसेंस शर्तें निर्दिष्ट करना चाहते हैं, तो उन्हें भेजते समय बस ऐसा कहें।