当前位置:首页 > 网络黑客 > 正文内容

一个MongoDB注入进犯事例剖析

访客4年前 (2021-04-16)网络黑客1061

在开端咱们的MongoDB“注入之旅”之前,咱们需求先知道和其他数据库比较,为什么咱们更乐意选MongoDB——由于MongoDB并不是SQL作为查询句子,所以人们可能会认为这样的数据库难以进行注入进犯?但是事实上并非如此。
myhack58百科:关于MongoDB
简略的说,MongoDB是个开源的NoSql数据库,其经过类似于JSON格局的数据存储,这使得它的结构就变得十分自在。经过MongoDB的查询句子就能够查询具体内容。
为什么运用MongoDB?
其实八成仅仅由于MongoDB能够快速查找出成果,它大约能够到达10亿/秒。当然MongoDB很盛行的别的一个原因是在许多使用场景下,联系型数据库是不适合的。例如,运用到非结构化,半自动化和多种状况的数据的使用,或许对数据可扩展性要求高的。
假如你想测验下你的开源程序,能够在以下网站中测验:
http://blog.securelayer7.net/securelayer7-gratis-pentest-summer-2019/
攻防事例
好了,咱们来看一个注入事例
第一个php比如,页面首要完成经过变量id获取到该id的username和password,
页面和源代码截图如下:
 


 
由上图源代码能够知道,后台数据库的姓名是security,调集名是users。u_id 是经过GET恳求传到后台,然后传入一个数组变量中。然后进入MongoDB的查询。接下来,咱们试试经过数组传入运算符号。

 
看看成果,回来了数据库中的一切内容。咱们剖析下咱们传入的数据:
http://localhost/mongo/show.php?u_id[$ne]=2
传入后的MongoDB查询句子如下:
$qry= array(“id” => array(“$ne” => 2))
所以,成果便是MongoDB回来了除了id=2的其他一切数据。
接下来咱们看看另一种状况,经过脚本完成相同的功用。所不同的是,咱们在后台用MongoDB中的findOne来查询成果。
咱们先来快速看下MongoDB中的findOne办法:
db.collection.findOne(query, projection)
回来的是一切满意查询条件的文档中的第一个文档。如下图,但咱们想要查询id=2的文档,输入以下句子:

 
然后,咱们看下php源代码:

 
在这里,最要害的便是损坏原有的查询句子,再从头履行一个查询句子。
能幻想到以下恳求会在MongoDB中履行怎样的操作吗?
http://localhost/mongo/inject.php?u_name=dummy’});return{something:1,something:2}}//&u_pass=dummy
在这里,咱们将原有的查询闭合了,然后回来了一个想要的参数,如下图:

 
留意:报错的信息中向咱们暴露了username和password这两个字段的存在,那么咱们就把刚刚的注入句子改上username和password 参数,这正是咱们想要的。

 
现在假如咱们想要知道数据库名。在MongoDB中,db.getName()办法能够查到数据库的姓名,所以咱们能够结构如下参数:

 
为了获取到数据库中的内容,咱们首要要知道数据库中一切调集名。经过db.getCollectionNames()就能知道数据库顶用的调集。

 
好了,目前为止,咱们获得了数据库名和调集名。现在需求做的便是获取到users调集中的数据,能够结构如下句子:
 

咱们能够用过改动数字来遍历整个调集,例如,改成 db.users.find()[2],如下图:

 
好了,现在或许咱们现已了解这种注入办法。那么,该怎么防护呢?
防护办法
咱们回想下,第一个比如中的遍历是传递给一个数组的(array)。防护这种注入的话,咱们总得先避免数组中的运算操作。因而,其间一种防护办法便是implode()办法,如下图:
 

[1] [2]  黑客接单网

扫描二维码推送至手机访问。

版权声明:本文由黑客接单发布,如需转载请注明出处。

本文链接:https://therlest.com/106222.html

分享给朋友:

“一个MongoDB注入进犯事例剖析” 的相关文章

淘宝什么时候发货(淘宝一般都是什么时候发货)

随着12月的到来,“双12推广”也如约而至。作为2020年电商最后一次推广,三天爆发也需要提前布局。 1双十二赛马规则 过去双十一促销,很多商家说没有达到预期,甚至很多免费流量也没有改变。问题的关键其实在于赛马规则。大推广前会有额外的赛马规则分配免费流量。想要在推广期获得更确定性的流量,必须了解...

我老公老是让他家的亲戚来我家,我该怎么办?请各位帮我想想办法,我

我老公老是让他家的亲戚来我家,我该怎么办?请各位帮我想想办法,我 请各位帮我想想办法,开网店怎么找女装货源唔爱神起助您成就财富人生,想做微商?想开实体店?想开淘宝店?什么才是你创业的最重要步骤?货源!想在微商卖童装母婴用品纸尿裤女装,开童装女装店铺,你去哪里找最好的货源?如何找童装女装一手货源呢?...

如厕阅读-如厕时读书看报有哪些坏处?

如厕阅读-如厕时读书看报有哪些坏处? 读书、看报兼如厕,不少人有这样的习惯。然而这一习惯非常不好。蹲厕时读书看报,会干扰大脑对排便传导神经的指挥,延长排便时间。现代医学研究证实,蹲厕超过3分钟即可直接导致直肠静脉曲张淤血,易诱发痔疮,且病情的轻重与时间长短有关。蹲厕时间越长,发病几率越高。因为久蹲...

怎样辨别有农药残留的蔬菜?

怎样辨别有农药残留的蔬菜? 一、不吃形状、颜色异常的蔬菜: 形状:颜色正常的蔬菜,一般是常规栽培,是未用激素等化学品处理的,可以放心地食用。 “异常”蔬菜可能用激素处理过,如韭菜,当它的叶子特别宽大肥厚,比一般宽叶一次同学聚会,我发现很多同学已经有房有车,毕竟毕业三年了,而我还只是每个月三千块...

威海海景房价格 - 威海银滩海景房崩盘

他们都觉得环境空气很好,很高兴,较为不银滩习惯。大多数房子都是海景房有装修的,最好有私家车。 我家刚在威海石岛买了海景房但是前几天看新闻,我在09年买了房子,今年夏天在乳山住了十来天,质量怎样比较宽泛,央视关于海景房的报道,建议您到威海市区看看,这个要看你考虑哪个方面,每个楼盘都会有区别。 在海边,...

宋pro1.5t买哪款合算 - 奇瑞1.5t发动机通病

而且车内空间也比轿车更宽敞。这款发动机的油耗还是比较高的,油耗、操控,比亚迪在科技配置方面一向是非常舍得,外观各方面均不错。该发动机为单顶置凸轮轴,奇瑞的技术储备应该是首当其冲的,而且保有量大将来保养维修也比较实惠。 缺点是技术老,在发动机第一盘变速箱方面拥有非常多的,身边朋友都劝他别买,它搭载的是...

评论列表

囤梦浪胚
2年前 (2022-07-04)

关于MongoDB简略的说,MongoDB是个开源的NoSql数据库,其经过类似于JSON格局的数据存储,这使得它的结构就变得十分自在。经过MongoDB的查询句子就能够查询具体内容。 为什么运用MongoDB?其实八成仅仅由于MongoDB能够

痴妓囍神
2年前 (2022-07-03)

入的数据:http://localhost/mongo/show.php?u_id[$ne]=2传入后的MongoDB查询句子如下:$qry= array(“id” => array(“$ne” => 2))所以,成果便是MongoDB回来了除了i

孤央莺时
2年前 (2022-07-03)

ngoDB是个开源的NoSql数据库,其经过类似于JSON格局的数据存储,这使得它的结构就变得十分自在。经过MongoDB的查询句子就能够查询具体内容。 为什么运用MongoDB?其实八成仅仅由于MongoDB能够快速查找出成果,它大约能够到达10亿/秒。当然MongoDB很盛

离鸢七禾
2年前 (2022-07-03)

ollectionNames()就能知道数据库顶用的调集。 好了,目前为止,咱们获得了数据库名和调集名。现在需求做的便是获取到users调集中的数据,能够结构如下句子: 咱们能够用过改动数字来遍历整个调集,例如,改成 db.us

丑味海夕
2年前 (2022-07-04)

入MongoDB的查询。接下来,咱们试试经过数组传入运算符号。 看看成果,回来了数据库中的一切内容。咱们剖析下咱们传入的数据:http://localhost/mongo/show.php?u_id[$ne]=2传入后的MongoDB查询句子如下:$qry= array(“id” => a

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。