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":"" } находится в кавычках, как я могу сделать сервлет уязвимым и с каким вводом он будет уязвимым?