0x01 Brief Description

作为nosql(not only sql)数据库的一种,mongodb很强大,很多企业也在用到。相对于sql数据库,nosql数据库有以下优点:简单便捷、方便拓展、更好的性能

0x02 Produce the vulnerability

漏洞环境搭建:

kali2.0搭建的环境apt-get install mongodb,注意最好用aliyun的源,之前用的中科大的源,没有找到下载。

安装完成之后开启服务,见下图:

环境的搭建原型来自这里:

http://bobao.360.cn/learning/detail/2839.html

mongdb的配置见下图

上图中可以看到mongodb默认是绑定到127.0.0.1,也就是说只允许本地访问,如果想要允许其它ip连接,只需要注释掉改行(不推荐,这样会导致未授权访问安全问题)。

关于mongodb开启认证以及创建角色的相关内容可以参考慕课网上的视频Mongodb安全

服务的开启

service mongodb start

查看数据库

show  dbs

查看集合

show collections

查看集合中的元素

db.collectionname.find()

数据的CURD就不细述了,最终的数据如下图所示:

GUI连接推荐使用mongovue,显示比较友好。

web端代码(记得安装mongodb模块 apt-get install php5-mongo)

 <?php
echo "param is id :)";
if(!empty($_GET['id']))
{
$m = new MongoClient();
$id = $_GET['id'];
if ($id=="1")
{
echo "You Can't access Admin's Account";
}
else
{
$db = $m->securitytest;
$collection = $db->users;
$qry = array("id"=> $_GET['id']);
$cursor = $collection->find($qry);
foreach($cursor as $document)
{
echo "<br>";
echo "Username:".$document["username"]."<br>";
echo "Password:".$document["password"]."<br>";
echo "<br>"; } } }

题解:

打开页面如下图所示,知道这里的参数是id

这个时候输入参数id=1,提示不允许访问

输入参数id=3 显示如下:

然后我们知道mongodb有这样一个关键字 ne 就是not equal的意思

Syntax: {field: {$ne: value} }
$ne selects the documents where the value of the field is not equal (i.e. !=) to the specified value. This includes documents that do not contain the field.

like this

就是查询到了id不为1的数据

那在这里呢,我们就可以这样构造进行注入:

http://192.168.247.132/inj.php?id[$ne]=2

Flag get!

当然还可以继续爆出collections和dbs,可参考这里:https://www.secpulse.com/archives/3278.html

此外还应该注意nosql数据库的未授权访问的问题,常见的nosql数据库及端口

0x03 Reference

相关学习视频:

http://www.imooc.com/video/5933

mongodb的中文文档:

http://docs.mongoing.com/manual-zh/

black nosql injection 视频后半部分

https://www.youtube.com/watch?v=ZYiTLZGK4AQ

Mongodb注入的更多相关文章

  1. 2019-10-31:渗透测试,基础学习,mongodb注入学习

    mongodb命令删除文档,db.集合名.remove({键:值})更新文档,db.集合名.update({被更新的对象},{$set:{要更新的内容}}),默认只更新检测到的第一条文档更新全部匹配到 ...

  2. 【转】MongoDB资料汇总专题

    1.MongoDB是什么 MongoDB介绍PPT分享 MongoDB GridFS介绍PPT两则 初识 MongoDB GridFS MongoDB GridFS 介绍 一个NoSQL与MongoD ...

  3. MongoDB资料汇总专题[转发]

    转发下..这个哥收集的很全 MongoDB资料汇总专题 作者:nosqlfan http://blog.nosqlfan.com/html/3548.html 最后更新时间:2013-04-22 1. ...

  4. MongoDB+php7搭建

    0x00前言: 今天一位非计算机专业的朋友问我怎么打开.bson文件,我第一反应.bson文件是什么,网上查了下是mongodb的传输文件.也就是类似于mysql的.sql文件一样 之前看过mongo ...

  5. MongoDB资料汇总专题

    原文地址:http://bbs.chinaunix.net/thread-3675396-1-1.html 上一篇Redis资料汇总专题很受大家欢迎,这里将MongoDB的系列资料也进行了简单整理.希 ...

  6. MongoDB资料汇总(转)

    原文:MongoDB资料汇总 上一篇Redis资料汇总专题很受大家欢迎,这里将MongoDB的系列资料也进行了简单整理.希望能对大家有用. 最后更新时间:2013-04-22 1.MongoDB是什么 ...

  7. MongoDB资料汇总专题(转)

    原文地址:http://blog.nosqlfan.com/html/3548.html 1.MongoDB是什么 MongoDB介绍PPT分享 MongoDB GridFS介绍PPT两则 初识 Mo ...

  8. SQL注入 基础学习

    SQL注入学习笔记 注入原理 SQL注入攻击指的是通过构建特殊的输入作为参数传入Web应用程序,而这些输入大都是SQL语法里的一些组合,通过执行SQL语句进而执行攻击者所要的操作,其主要原因是程序没有 ...

  9. nginx配合modsecurity实现WAF功能

    一.准备工作 系统:centos 7.2 64位.nginx1.10.2, modsecurity2.9.1 owasp3.0 1.nginx:http://nginx.org/download/ng ...

随机推荐

  1. 【English】20190416

     anti-money laundering反洗钱[ˈænti][ˈlɔːndərɪŋ] misconduct不当行为[ˌmɪsˈkɑːndʌkt]   Currently, she is focus ...

  2. 文本分类实战(七)—— Adversarial LSTM模型

    1 大纲概述 文本分类这个系列将会有十篇左右,包括基于word2vec预训练的文本分类,与及基于最新的预训练模型(ELMo,BERT等)的文本分类.总共有以下系列: word2vec预训练词向量 te ...

  3. UIGestureRecognizer - BNR

    继续上篇UITouch - BNR.该篇将实现线条选择.移动和删除操作. UIGestureRecognizer有一系列子类,每一个子类都用于识别特定的手势.当识别出一个手势时,手势识别器会拦截视图的 ...

  4. HTML多图无缝循环翻页效果

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  5. 全局css控制<td>标签属性

    td { text-align: center; /*设置水平居中*/ vertical-align: middle; /*设置垂直居中*/    height:50px;             / ...

  6. JAVA多线程-实现同步

    一.什么是线程安全问题 当多个线程同时共享,同一个全局变量或静态变量,做写的操作时,可能会发生数据冲突问题,也就是线程安全问题.但是做读操作是不会发生数据冲突问题. 二.如何解决线程安全问题 1)如何 ...

  7. object.observe被废弃了怎么办

    用新的 Proxy 具体见:https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Proxy

  8. spring中设计模式

    MVC模式 Model:pojo.数据库交互(业务数据和业务逻辑) View:Jsp(与用户交互页面) Controller:控制器(接收请求并决定调用哪个模块组件去处理请求,然后决定调用哪个视图(通 ...

  9. MongoDB和pymongo的CURD

    一.mongodb 1.介绍 MongoDB是一个基于分布式文件存储的数据库.由C++语言编写.旨在为WEB应用提供可扩展的高性能数据存储解决方案. MongoDB是一个介于关系数据库和非关系数据库之 ...

  10. 金融量化之Tushare模块

    一.介绍 Tushare是一个免费.开源的python财经数据接口包.主要实现对股票等金融数据从数据采集.清洗加工 到 数据存储的过程,能够为金融分析人员提供快速.整洁.和多样的便于分析的数据,为他们 ...