NOSQL注入

NOSQL注入分类

1。使用数组

  a)Mongodb 注入必须配合PHP,利用PHP可以传递数组的特性。
  b)通过传递键值对的方式

eg:
       $arr=array{
                ‘username’:$uname,
                ‘password’:$upass
        }

数组转json代码

        {“username”:”admin”,”password”:”123456”}
db.messages.find($arr);

所谓的万能密码:

2.字符拼接

 类似于SQL注入的方式,通过对原有数据的破坏执行修改后的数据达到,注入的效果。

3.插入Json代码,直接控制数据库的数据

在没有源码的情况是很难猜到的,原理和sql注入的原理一样,只是可以直接对数据库进行操作,危害更到。

NOSQL注入攻击手段

1。重言式(永真式)

2。联合查询

3。Javascript注入

  在Mongodb中 $where操作符是可以执行的JavaScript代码,通过 ‘ “ 等闭合语句,执行任意的JavaScript代码。在Mongodb2.4之前,通过$where操作符使用map-reduce、group命令可以访问到mongo shell中的全局函数和属性。可以操作数据库中的数据

NOSQL数据库的操作

  查询数据-条件

$lt   ==>  <      小于
$gt  ==>  <      大于
$lte ==>  <=    小于等于
$gte ==>  >=   大于等于
$ne   ==>  !=   不等于
$regex         正则表达式

SQL与NOSQL(以Mongodb为例)差异

SQL术语/概念 Mongodb术语/概念 解释
database database 数据库
table collection 数据库表/集合
row document 数据记录行/文档
column field 数据字段/域
index index 索引
table joins mongodb不支持
primary key primary key 主键,Mongodb自动将 _id字段设置为主键

Mongodb数据的增删该

创建/删除数据库

    use 数据库名字  // 创建数据库 或 使用数据库
    db.dropdatabase()  // 删除数据库

创建/删除数据集合

    db.createCollention(name,options)
    db.collectionname.drop()

修改数据

    db.Collection_name.update(<query>,<update>)
    query={"age":{$lt:"20"}}
    update={$set:{"username":"ls"}}

补充

php连接Mongodb Mongo扩展被淘汰,不推荐使用
Mongo数据库连接代码 php5.6之前只能用Mongo扩展

Mongodb代码连接 php7.0只剩下Mongodb扩展


   转载规则


《NOSQL注入》 Evolyutsiya 采用 知识共享署名 4.0 国际许可协议 进行许可。
  目录