diff --git a/src/pentesting-web/nosql-injection.md b/src/pentesting-web/nosql-injection.md index d775d7f5a..933ff19f0 100644 --- a/src/pentesting-web/nosql-injection.md +++ b/src/pentesting-web/nosql-injection.md @@ -4,7 +4,7 @@ ## Exploit -Στην PHP μπορείτε να στείλετε ένα Array αλλάζοντας την αποσταλείσα παράμετρο από _parameter=foo_ σε _parameter\[arrName]=foo._ +Στην PHP μπορείτε να στείλετε ένα Array αλλάζοντας την παραμετρο _parameter=foo_ σε _parameter\[arrName]=foo._ Οι εκμεταλλεύσεις βασίζονται στην προσθήκη ενός **Operator**: ```bash @@ -86,7 +86,7 @@ in JSON ### Λάβετε πληροφορίες από διαφορετική συλλογή -Είναι δυνατόν να χρησιμοποιήσετε [**$lookup**](https://www.mongodb.com/docs/manual/reference/operator/aggregation/lookup/) για να λάβετε πληροφορίες από μια διαφορετική συλλογή. Στο παρακάτω παράδειγμα, διαβάζουμε από μια **διαφορετική συλλογή** που ονομάζεται **`users`** και λαμβάνουμε τα **αποτελέσματα όλων των καταχωρήσεων** με έναν κωδικό πρόσβασης που ταιριάζει με ένα wildcard. +Είναι δυνατόν να χρησιμοποιήσετε [**$lookup**](https://www.mongodb.com/docs/manual/reference/operator/aggregation/lookup/) για να λάβετε πληροφορίες από μια διαφορετική συλλογή. Στο παρακάτω παράδειγμα, διαβάζουμε από μια **διαφορετική συλλογή** που ονομάζεται **`users`** και λαμβάνουμε τα **αποτελέσματα όλων των καταχωρίσεων** με έναν κωδικό πρόσβασης που ταιριάζει με ένα wildcard. **ΣΗΜΕΙΩΣΗ:** `$lookup` και άλλες συναρτήσεις συγχώνευσης είναι διαθέσιμες μόνο αν χρησιμοποιήθηκε η συνάρτηση `aggregate()` για να εκτελέσει την αναζήτηση αντί των πιο κοινών συναρτήσεων `find()` ή `findOne()`. ```json @@ -108,6 +108,12 @@ in JSON } ] ``` +### Error-Based Injection + +Εισάγετε `throw new Error(JSON.stringify(this))` σε μια ρήτρα `$where` για να εξάγετε πλήρη έγγραφα μέσω σφαλμάτων JavaScript στον διακομιστή (απαιτεί την εφαρμογή να διαρρεύσει σφάλματα βάσης δεδομένων). Παράδειγμα: +```json +{ "$where": "this.username='bob' && this.password=='pwd'; throw new Error(JSON.stringify(this));" } +``` ## MongoDB Payloads Λίστα [από εδώ](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}}