Spring Data MongoDB nosql injection



我有个问题。spring数据中mongo存储库中的查询是否安全,不会受到NoSQL注入攻击?有可能成功地对spring-boot应用程序进行这样的攻击吗?例如,如果我用自己的方法创建了一个扩展MongoRepository的接口,那么默认查询是否以安全的方式生成,这样的攻击就不可能发生?感谢

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

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

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

"password":"{ '$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注入等案件做好了准备,并确保了它的安全。然而,如果有人能支持或不同意我的观点(基于执行的攻击(,并提供更多的证据或例子,我将不胜感激。谢谢

最新更新