
NoSql Injection CLI tool، للبحث عن المواقع الضعيفة باستخدام MongoDB.
ماسح وحاقن NoSQL سريع. للعثور على المواقع المعرضة لحقن NoSQL، وخاصة Mongo.
أردت أداة حقن nosql أفضل تكون بسيطة الاستخدام، تعتمد كليًا على سطر الأوامر، وقابلة للتخصيص. لهذا الغرض، بدأت العمل على nosqli - أداة حقن nosql بسيطة مكتوبة بلغة Go.
تهدف إلى أن تكون سريعة ودقيقة وقابلة للاستخدام بدرجة عالية، مع واجهة سطر أوامر سهلة الفهم.
يدعم Nosqli حاليًا كشف حقن nosql لـ Mongodb. يقوم بتشغيل الاختبارات التالية:
قم بتنزيل أحدث إصدار ثنائي لنظام التشغيل الخاص بك، وقم بتثبيته في مسار النظام، أو قم بتشغيله من مجلد محلي.
أخطط لإضافة ميزات استخراج البيانات. إذا كنت ترغب في رؤية ميزات أو خيارات تكوين أخرى، فيرجى فتح طلب سحب أو مشكلة!
ينبغي أن يكون موثقًا ذاتيًا بمجرد تشغيل الأمر وقراءة ملفات المساعدة.
$ 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 الضعيف و فرع مختبر PHP الضعيف الخاص بي من digininja. تذكر تصفح كل موقع وإعادة تعيين قاعدة البيانات! ثم مرر علامة التكاملات:
go test ./... -args -integrations=true
إذا لم يتم العثور على أي من البيئتين، سيتم تعطيل اختبارات التكامل بواسطة إحدى حالات الاختبار، لتسريع تشغيل الاختبار.
المساهمات مرحب بها! يرجى تقديم طلب سحب أو فتح مشكلة للمناقشة.
ما لم تحدد خلاف ذلك، يُفهم أنك تقدم لمشروع nosqli الحق غير الحصري وغير المحدود في إعادة استخدام وتعديل وإعادة ترخيص الكود الذي تساهم به. سيكون هذا المشروع دائمًا مفتوح المصدر، ولكن هذا مهم لأن عدم القدرة على إعادة ترخيص الكود تسبب في مشاكل مدمرة لمشاريع برامج حرة أخرى (مثل KDE و NASM). إذا كنت ترغب في تحديد شروط ترخيص خاصة لمساهماتك، فقط قل ذلك عند إرسالها.