首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在Ruby on Rails和Mongoid上,nosql注入是可能的吗?

在Ruby on Rails和Mongoid上,nosql注入是可能的吗?
EN

Stack Overflow用户
提问于 2019-05-15 10:17:40
回答 1查看 480关注 0票数 2

我正在尝试调查在Ruby on Rails上是否可以使用mongo和mongoid gem进行nosql注入。

我使用包含Mongoid::DocumentMongo::Client集合和模型来处理Mongodb的请求。

我试图传递一些命令字符,比如' " \ ; { },但是它被清理了。传递GET search?title[$ne]=foo是像{"title"=>"{\"$ne\"=>\"foo\"}"}一样训练的,所以在这里看起来不是什么问题。

如果我使用此技术堆栈的普通方法,是否可以进行任何nosql注入?

EN

回答 1

Stack Overflow用户

发布于 2021-10-26 18:55:39

有可能,但很容易被忽视。

事实上,你已经很接近了。

非信任源不仅仅来自GET参数。

Mongoid对您没有任何帮助;在您的示例中,阻止成功利用的原因是,在RoR中,您不能将Hash作为GET参数传递。

未清理的参数可以来自JSON,比如下面这个。

posts = PrivatePost.where({ owner_id: json_params[:owner_id] }).each.to_a

其中json_params[:owner_id]可以包含{ '$ne': 'the owner' }

这可能会将posts泄露给其他人。

或者通过POST-based打乱操作范围:

Post.where({ _id: json_params[:id] }).delete_all
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56140931

复制
相关文章

相似问题

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