Koristite [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) da lako izgradite i **automatizujete radne tokove** pokretane najnaprednijim alatima zajednice.\
<summary><strong>Naučite hakovanje AWS-a od nule do heroja sa</strong><ahref="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
* Ako želite da vidite svoju **kompaniju reklamiranu na HackTricks-u** ili **preuzmete HackTricks u PDF formatu** Proverite [**PLANOVE ZA PRETPLATU**](https://github.com/sponsors/carlospolop)!
* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili nas **pratite** na **Twitteru** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
NoSQL baze podataka, kao što je MongoDB, takođe su podložne injekcijama. Uobičajeni napadi uključuju ubacivanje operacija koje nisu predviđene, kao što su `$where` klauzule ili JavaScript kod unutar upita.
---
#### **MongoDB NoSQL Injection Primer**
Evo primera kako se može izvršiti NoSQL injekcija u MongoDB bazi podataka:
```json
POST /api/products HTTP/1.1
Host: website.com
Content-Type: application/json
{
"name": {"$gt": ""},
"password": {"$gt": ""}
}
```
U ovom primeru, ako se ne vrati greška, može se zaključiti da je baza podataka podložna NoSQL injekciji.
Napadač može iskoristiti ovo unošenjem nizova poput `admin' || 'a'=='a`, čime će upit vratiti sve dokumente zadovoljavajući uslov tautologijom (`'a'=='a'`). Ovo je analogno SQL injection napadima gde se koriste unosi poput `' or 1=1-- -` za manipulaciju SQL upita. U MongoDB-u, slične injekcije mogu se izvršiti korišćenjem unosa poput `' || 1==1//`, `' || 1==1%00`, ili `admin' || 'a'=='a`.
NoSQL baze podataka, kao što je MongoDB, koriste se za čuvanje podataka u obliku JSON dokumenata umesto tabela. Kao rezultat toga, tradicionalne SQL injekcije neće raditi na NoSQL bazama podataka. Međutim, NoSQL baze podataka su podložne NoSQL injekcijama.
NoSQL injekcija može se desiti kada se korisnički unos ne filtrira ili validira pre nego što se prosledi bazi podataka. To može dovesti do izvršavanja neovlašćenih upita ili manipulacije podacima.
Da biste sprečili NoSQL injekcije, koristite parametrizovane upite, koristite biblioteke koje automatski filtriraju unos ili koristite ORM (Object-Relational Mapping) biblioteke koje rukovode interakcijom sa bazom podataka umesto ručnog pisanja upita.
Korišćenjem operatora **$func** biblioteke [MongoLite](https://github.com/agentejo/cockpit/tree/0.11.1/lib/MongoLite) (koja se koristi podrazumevano) moguće je izvršiti proizvoljnu funkciju kao u [ovom izveštaju](https://swarm.ptsecurity.com/rce-cockpit-cms/).
Moguće je koristiti [**$lookup**](https://www.mongodb.com/docs/manual/reference/operator/aggregation/lookup/) da biste dobili informacije iz različite kolekcije. U sledećem primeru, čitamo iz **različite kolekcije** nazvane **`users`** i dobijamo **rezultate svih unosa** sa lozinkom koja odgovara šablonu.
**NAPOMENA:** `$lookup` i ostale funkcije agregacije su dostupne samo ako je funkcija `aggregate()` korišćena za pretragu umesto uobičajenijih funkcija `find()` ili `findOne()`.
Koristite [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) da biste lako izgradili i **automatizovali radne tokove** pokretane najnaprednijim alatima zajednice.\
<summary><strong>Naučite hakovanje AWS-a od nule do heroja sa</strong><ahref="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
* Ako želite da vidite **vašu kompaniju reklamiranu na HackTricks-u** ili **preuzmete HackTricks u PDF formatu** proverite [**PLANOVE ZA PRIJAVU**](https://github.com/sponsors/carlospolop)!
* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili nas **pratite** na **Twitter-u** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
Koristite [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) da biste lako izgradili i **automatizovali radne tokove** pokretane najnaprednijim alatima zajednice na svetu.\