NoSQL-инъекция — Java-сервер

Я пытаюсь создать сервлет Java с уязвимостью NoSQL инъекции. Я подключил сервлет к MongoDB и проверил, существует ли информация для входа, отправленная пользователем, я делаю следующий запрос:

      String andQuery = "{$and: [{user: \""+u+"\"}, {password: \""+p+"\"}]}";

Где u — пользователь, а p — пароль, заданный пользователем. Для того, что я видел, это правильно, и инъекция NoSQL должна существовать, но я действительно не знаю, как это доказать.

Я пытался отправить с отрыжкой это:

      username[$ne]=1&password[$ne]=1

Но это не работает, и когда я проверяю содержимое u и p после того, как я представил, что содержимое обеих переменных равно нулю. У меня нет сервлета, настроенного для получения объектов json, поэтому мне нужно решение, которое не подразумевает отправку объекта json с отрыжкой.

PD: Я также пытался вставить что-то вроде этого:

      {\"$gt\":\"\" }

в полях пользователя и пароля, но результирующий запрос

      {"$and": [{"user": "{\"$gt\":\"\" }"}, {"password": "{\"$gt\":\"\" }"}]}

Я предполагаю, что это не работает, потому что {"$gt":"" } находится в кавычках, как я могу сделать сервлет уязвимым и с каким вводом он будет уязвимым?

0 ответов

Другие вопросы по тегам