Files
obsidian/cybersec/WEB/NoSQL Injection.md
2026-07-30 11:35:10 +05:00

2.4 KiB

NoSQL иньекции похожи по своей сути с sql, так как задача - получить доступ к данным бд, изменить\удалить данные, вызвать отказ систем или вообще исполнить код на сервере.

NoSQl базы хранят и управляют данными иначе, нежели SQL. Они используют широкий спектр языков запросов вместо универсального стандарта, такого как SQL, и имеют меньше реляционных ограничений.

Суещствует 2 вида NOSQL инъекций:

  1. Внедрение ситаксиса. Методика аналогична той, которая используется при внедрении SQL. Однако характер нападения варьируется Это важно, поскольку базы данных NoSQL используют ряд языков запросов, типов синтаксиса запросов и различных структур данных.
  2. Внедрение операторов - вы можете использовать операторы запросов для управление запросами.

Иньекция синтаксиса

Будем рассматривать синтасис MongoDB Рассмотрим пример. Есть сайт, где пользователь может выбрать категорию газированные напитки.

https://insecure-website.com/product/lookup?category=fizzy

При таком запросе, выполняется JSON запрос для получения соответсвтующих продуктов из колекции product в БД MongoDB

this.category == 'fizzy'

Что бы проверить на уязвимость, стоит отправить мусорную строку в качетсве значения category.

'"`{ ;$Foo} $Foo \xYZ

После установления, что система уязвима - отправляете запрос с логическими выражениями ' && 0 && 'x или ' && 1 && 'x После обнаружения того, что вы можете влитять на логические операторы, отправляете '||'1' == '1.