首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MongoDB注入攻击

MongoDB注入攻击
EN

Stack Overflow用户
提问于 2020-06-23 01:02:34
回答 1查看 588关注 0票数 1

我正在尝试增加我对SQL和NoSQL注入攻击的知识,我突然想到我怎么可能向NoSQL数据库中注入一些东西,在这种情况下,MongoDB.There在互联网上有很多关于注入攻击的不同方式的文章,并试图建立一个我自己的攻击示例,它只是做了其他示例所做的事情,但我做了id只是为了证明我自己的眼睛。然而,似乎我尝试的几乎所有东西都不能用于注入目的(这很好)。想知道是否仍然存在注入攻击的问题,或者互联网上只有旧东西。我将发布我自己的实现,以防我遗漏了一些东西:

所以它是包含一个集合和一个文档的NodeJs和MongoDB。这种情况下,当用户尝试登录时,文档中包含用户名和密码。

下面是我的NodeJs实现:

代码语言:javascript
复制
app.post('/', async (req,res) => {
let response = {
    withoutProtection: false,
    withProtection:false
};
const query = {
    username: req.body.username,
    password: req.body.password
};
var user = await User.findOne(query);
if(user){
    response.withProtection = true;
}
res.send(response);
})

下面是用户模式:

代码语言:javascript
复制
const UserSchema  = new mongoose.Schema({
username:{
    type: String
},
password:{
    type: String
},
})

所以我尝试了$ne=1、$gt、sleep()等不同的方法。我将在这里留下一个查询示例:{username: ' admin'|| '1'=='1', password: ''}

EN

回答 1

Stack Overflow用户

发布于 2020-06-23 03:03:55

如果用户输入被结构化地合并到查询中,则查询注入是可能的。例如,如果用户可以指定一个散列,该散列将按原样合并到查询中。

如果用户输入是字符串化的(这是web应用程序中经常发生的),并且运算符由应用程序固定,使得用户输入只能成为值(并且值类型是受控的,即它们都是字符串),则应用程序通常不会受到查询注入的影响。

请注意,SQL查询是一个字符串,而MQL查询是一个哈希。因此,字符串输入可以简单地合并到SQL查询中,但不会太多地合并到MQL查询中。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62519699

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档