init
This commit is contained in:
@@ -0,0 +1,23 @@
|
||||
NoSQL иньекции похожи по своей сути с sql, так как задача - получить доступ к данным бд, изменить\удалить данные, вызвать отказ систем или вообще исполнить код на сервере.
|
||||
|
||||
NoSQl базы хранят и управляют данными иначе, нежели SQL. Они используют широкий спектр языков запросов вместо универсального стандарта, такого как SQL, и имеют меньше реляционных ограничений.
|
||||
|
||||
Суещствует 2 вида NOSQL инъекций:
|
||||
1. Внедрение ситаксиса. Методика аналогична той, которая используется при внедрении SQL. Однако характер нападения варьируется Это важно, поскольку базы данных NoSQL используют ряд языков запросов, типов синтаксиса запросов и различных структур данных.
|
||||
2. Внедрение операторов - вы можете использовать операторы запросов для управление запросами.
|
||||
## Иньекция синтаксиса
|
||||
Будем рассматривать синтасис **MongoDB**
|
||||
Рассмотрим пример. Есть сайт, где пользователь может выбрать категорию газированные напитки.
|
||||
```url
|
||||
https://insecure-website.com/product/lookup?category=fizzy
|
||||
```
|
||||
При таком запросе, выполняется JSON запрос для получения соответсвтующих продуктов из колекции product в БД MongoDB
|
||||
```mongodb
|
||||
this.category == 'fizzy'
|
||||
```
|
||||
Что бы проверить на уязвимость, стоит отправить мусорную строку в качетсве значения category.
|
||||
```mongodb
|
||||
'"`{ ;$Foo} $Foo \xYZ
|
||||
```
|
||||
После установления, что система уязвима - отправляете запрос с логическими выражениями **' && 0 && 'x** или **' && 1 && 'x**
|
||||
После обнаружения того, что вы можете влитять на логические операторы, отправляете **'||'1' == '1**.
|
||||
Reference in New Issue
Block a user