【漏洞挖掘】——131、 NoSQL Injection刨析

NoSQL注入攻击详解
基本介绍

NoSQL Injection是一种针对NoSQL数据库的安全漏洞,类似于传统的SQL注入攻击,NoSQL数据库是一类非关系型数据库,例如:MongoDB、Cassandra、Redis等,它们使用不同的数据存储和查询机制,NoSQL Injection漏洞的本质是未正确验证和过滤用户输入导致攻击者能够执行未经授权的操作从而破坏数据库的完整性、泄露敏感数据或执行其他恶意行为

漏洞类型

NoSQL注入可以简单的分为以下两种:

  • 语法注入:当我们可以破坏NoSQL查询语法注入攻击载荷时就会发生这种情况,该方法与SQL注入中使用的方法类似,然而由于NoSQL数据库使用一系列查询语言、查询语法类型和不同的数据结构,因此攻击的性质差异很大
  • 运算符注入:当我们可以使用NoSQL查询运算符来操作查询时就会发生这种情况
语法注入
注入检测

下面我们思考一个再MongoDB中显示不同类别产品的购物应用程序,当用户选择Fizzy饮料类别时,其浏览器会请求以下URL:

https://insecure-website.com/product/lookup?category=fizzy

此时应用程序发送JSON查询并从MongoDB数据库中的产品集合中检索相关产品:

NoSQLMap是一款开源Python工具,可以帮助安全测试人员自动化对NoSQL数据库进行攻击测试。目前这款工具的漏洞利用程序围绕MongoDB,但是以后会支持更多的NoSQL数据库,如 CouchDB, Redis和Cassandra。NoSQLMap是一款Python编写的开源工具,常用于审计NoSQL数据库中的自动注入攻击、为了从数据库中揭露数据而利用NoSQL数据库或使用NoSQLWeb应用的默认配置弱点。它这样命名是为了几年Bernardo Damele和Miroslav创作的流行的SQL工具SQLmap,它的设计理念来源于Ming Chow在Defcon中发表的很棒的演讲-”Abusing NoSQL Databases”。该工具目前主要应用于MongoDB,但是它在未来的版本中还会支持其他基于NoSQL的平台,如CouchDB, Redis和Cassandra等。当前该项目的目的是为简单攻击MongoDB服务器和一些web应用提供渗透测试工具,以及用通过概念攻击来证明某NoSQL应用不会受到SQL注入。主要功能:自动化MongoDB和CouchDB数据库枚举和克隆攻击。通过MongoDB web应用提取数据库名称、用户和哈希密码。为使用默认访问和枚举版本的MongoDB和CouchDB数据库扫描子网或IP列表。字典攻击、暴力破解恢复的MongoDB和CouchDB的哈希密码。针对MongoClient的PHP应用程序参数注入攻击,返回所有数据库中的记录。Javascript函数变量转移和任意代码注入,返回所有数据库中的记录。类似于盲SQL注入的用于验证无来自应用程序的反馈的Javascript注入漏洞的时序攻击。使用方法启动./nosqlmap.py或python nosqlmap.py.基本菜单1-Set options (do this first) 2-NoSQL DB Access Attacks 3-NoSQL Web App attacks 4-Exit 标签:NoSQLMap
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

FLy_鹏程万里

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值