gpt4 book ai didi

java - Spring Data MongoDB nosql注入(inject)

转载 作者:可可西里 更新时间:2023-11-01 10:46:19 24 4
gpt4 key购买 nike

我有一个问题。 spring 数据中的 mongo 存储库中的查询是否可以免受 NoSQL 注入(inject)攻击?是否有可能成功地对 spring-boot 应用程序执行此类攻击?例如,如果我创建使用我自己的方法扩展 MongoRepository 的接口(interface),是否以安全的方式生成默认查询,这样的攻击是不可能的?谢谢

最佳答案

我使用一个 mongo 存储库创建了小型 Spring Boot 应用程序。我对它执行了一些基本的 NoSQL 注入(inject)攻击,为了确保它们有效,我还使用 Robo3T 进行了攻击,并检查了输出是否符合我的预期。例如,进行如下查询:

db.getCollection('user').find({
"login":"f1",
"password" : { '$ne': null } })

会给我所有具有数据库中存在的登录名的用户。我通过对 String 字段类型执行这样的 { '$ne': null } 进行了这种攻击。(我也对其他类型进行了一些其他攻击,但我稍后会解释我的其他结论)正如我所想的那样,它是不可能提供我们自己的命令。 Spring 使它看起来像这样:

"密码":"{ '$ne': null }"

每当我们尝试以“”结尾时,它只会将\添加到我们的查询中,例如:

{ "login" : "f1", "password" : "\"end earlier\"" }

我还检查了其他请求(主要来自这里:https://github.com/cr0hn/nosqlinjection_wordlists/blob/master/mongodb_nosqli.txt,因为我在这里找到它 https://www.owasp.org/index.php/Testing_for_NoSQL_injection,也许这些链接会对某人有所帮助),但是没有一个成功。因此,就我而言,他们已准备好应对 NoSQL 注入(inject)等情况,并且他们对其进行了保护。但是,如果有人可以支持或不同意我的观点(基于执行的攻击)并提供更多证据或示例,我将不胜感激。谢谢。

关于java - Spring Data MongoDB nosql注入(inject),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51632992/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com