
Outil CLI d'injection NoSQL, pour trouver des sites web vulnérables utilisant MongoDB.
Un scanner et injecteur NoSQL rapide. Pour trouver des sites vulnérables à l'injection NoSQL, en particulier Mongo.
Je voulais un meilleur outil d'injection nosql, simple à utiliser, entièrement en ligne de commande et configurable. C'est dans cette optique que j'ai commencé à travailler sur nosqli – un outil simple d'injection nosql écrit en Go.
Il vise à être rapide, précis et très utilisable, avec une interface en ligne de commande facile à comprendre.
Nosqli prend actuellement en charge la détection d'injection nosql pour Mongodb. Il exécute les tests suivants :
Téléchargez la dernière version binaire pour votre système d'exploitation, et installez-la dans votre PATH, ou exécutez-la depuis un dossier local.
Je prévois d'ajouter des fonctionnalités d'extraction de données. Si vous souhaitez voir d'autres fonctionnalités ou options de configuration, n'hésitez pas à ouvrir une pull request ou un issue !
L'outil est auto-documenté : il suffit d'exécuter la commande et de lire les fichiers d'aide.
$ 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='
Vous pouvez tester l'outil en utilisant mon application node js vulnérable, ou d'autres laboratoires d'injection nosql.
Lors de la sélection de l'URL cible, assurez-vous que tous les paramètres testables sont présents dans l'URL. Par exemple, supposons qu'un site ait une page à /user/lookup avec un formulaire de recherche. Après avoir saisi des données dans le champ, l'URL devient /user/lookup?username=. Si vous scannez seulement /user/lookup, l'outil ne trouvera pas d'injections possibles. Pour scanner correctement, assurez-vous d'utiliser l'URL complète avec tous les paramètres (dans ce cas /user/lookup?username=).
Si vous préférez construire à partir des sources, ou s'il n'y a pas de binaire compilé pour votre plateforme, vous pouvez le faire en clonant le dépôt, en installant les dépendances et en construisant le projet manuellement. Cela nécessite une version récente de Go et la variable d'environnement GOPATH appropriée.
$ git clone https://github.com/Charlie-belmer/nosqli
$ cd nosqli
$ go get -u -d ./...
$ go install
$ nosqli -h
Une suite de tests correcte est incluse. Les tests unitaires ainsi qu'une couverture d'injection simple peuvent être exécutés en utilisant go test depuis le répertoire racine :
go test ./...
Des tests d'intégration sont également disponibles, qui exécutent des injections contre des applications vulnérables connues fonctionnant localement. Pour utiliser les tests d'intégration, installez et exécutez l'application nodejs vulnérable Mongo et mon fork du laboratoire PHP vulnérable de digininja. N'oubliez pas de naviguer vers chaque site et de réinitialiser la base de données ! Passez ensuite l'indicateur d'intégration :
go test ./... -args -integrations=true
Si l'un ou l'autre des environnements n'est pas trouvé, les tests d'intégration seront désactivés par l'un des cas de test, pour accélérer l'exécution des tests.
Les contributions sont les bienvenues ! Veuillez soumettre une pull request ou ouvrir un issue pour discussion.
Sauf indication contraire, il est entendu que vous offrez au projet nosqli le droit illimité et non exclusif de réutiliser, modifier et relicencier le code que vous contribuez. Ce projet sera toujours disponible en open source, mais cela est important car l'impossibilité de relicencier du code a causé des problèmes dévastateurs pour d'autres projets de logiciels libres (comme KDE et NASM). Si vous souhaitez spécifier des conditions de licence spéciales pour vos contributions, indiquez-le lors de leur envoi.