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扩展