1

我正在研究 NoSql 注入,所以我试图用邮递员破解我的数据库,看看是否有任何漏洞。我的请求使用参数来查询字段:

User.find({
    // name: req.params.name
    name: req.query.name
},
function (err, result) {
    if (err) {
        console.log('Mongoose findUsers name error: ', err);
        res.status(505).send({ error: "Internal error." });
        return;
    }
    if (result != null) {
        console.log("Mongoose findUsers name: ", result);
        res.status(200).send({
            message: "Found users :",
            data: result
        });
    } else {
        console.log("Mongoose findUsers name: No user found");
        res.status(404).send({
            message: "No user found."
        });
    }
});

所以我试图将名称参数作为{"$ne": null}or传递{"$gt": ""},所以查询将是localhost:5000/api/users?name={"$ne": null}. 虽然我从该findOne方法得到的响应不为空,但它会返回一个空数组。这是否意味着我已经受到 NoSql 注入的保护并且不需要清理查询参数,或者我只是没有使用正确的值来执行注入?如果可以进行 nosql 注入,我还可以运行哪些其他测试来尝试正确检查?一如既往地感谢您的帮助。干杯。

4

0 回答 0