From 39786b9949c1a4015e3ebf63babc6f4aae1edc74 Mon Sep 17 00:00:00 2001 From: Translator Date: Tue, 8 Jul 2025 19:35:30 +0000 Subject: [PATCH] Translated ['src/pentesting-web/nosql-injection.md'] to fr --- src/pentesting-web/nosql-injection.md | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/pentesting-web/nosql-injection.md b/src/pentesting-web/nosql-injection.md index 55fe4f152..3f7a9de34 100644 --- a/src/pentesting-web/nosql-injection.md +++ b/src/pentesting-web/nosql-injection.md @@ -35,7 +35,7 @@ username[$exists]=true&password[$exists]=true ```javascript query = { $where: `this.username == '${username}'` } ``` -Un attaquant peut exploiter cela en saisissant des chaînes comme `admin' || 'a'=='a`, ce qui fait que la requête renvoie tous les documents en satisfaisant la condition avec une tautologie (`'a'=='a'`). Cela est analogue aux attaques par injection SQL où des entrées comme `' or 1=1-- -` sont utilisées pour manipuler les requêtes SQL. Dans MongoDB, des injections similaires peuvent être effectuées en utilisant des entrées comme `' || 1==1//`, `' || 1==1%00`, ou `admin' || 'a'=='a`. +Un attaquant peut exploiter cela en saisissant des chaînes comme `admin' || 'a'=='a`, ce qui fait que la requête renvoie tous les documents en satisfaisant la condition avec une tautologie (`'a'=='a`). Cela est analogue aux attaques par injection SQL où des entrées comme `' or 1=1-- -` sont utilisées pour manipuler des requêtes SQL. Dans MongoDB, des injections similaires peuvent être effectuées en utilisant des entrées comme `' || 1==1//`, `' || 1==1%00`, ou `admin' || 'a'=='a`. ``` Normal sql: ' or 1=1-- - Mongo sql: ' || 1==1// or ' || 1==1%00 or admin' || 'a'=='a @@ -108,6 +108,12 @@ Il est possible d'utiliser [**$lookup**](https://www.mongodb.com/docs/manual/ref } ] ``` +### Injection Basée sur les Erreurs + +Injectez `throw new Error(JSON.stringify(this))` dans une clause `$where` pour exfiltrer des documents complets via des erreurs JavaScript côté serveur (nécessite que l'application divulgue des erreurs de base de données). Exemple : +```json +{ "$where": "this.username='bob' && this.password=='pwd'; throw new Error(JSON.stringify(this));" } +``` ## MongoDB Payloads Liste [from here](https://github.com/cr0hn/nosqlinjection_wordlists/blob/master/mongodb_nosqli.txt) @@ -229,5 +235,6 @@ get_password(u) - [https://github.com/swisskyrepo/PayloadsAllTheThings/tree/master/NoSQL%20Injection](https://github.com/swisskyrepo/PayloadsAllTheThings/tree/master/NoSQL%20Injection) - [https://nullsweep.com/a-nosql-injection-primer-with-mongo/](https://nullsweep.com/a-nosql-injection-primer-with-mongo/) - [https://blog.websecurify.com/2014/08/hacking-nodejs-and-mongodb](https://blog.websecurify.com/2014/08/hacking-nodejs-and-mongodb) +- [https://sensepost.com/blog/2025/nosql-error-based-injection/](https://sensepost.com/blog/2025/nosql-error-based-injection/) {{#include ../banners/hacktricks-training.md}}