墨者学院刷题笔记——SQL手工注入漏洞测试(MongoDB数据库)
今天继续给大家介绍Linux运维相关知识,本文主要内容是SQL手工注入漏洞测试(MongoDB数据库)。
一、题目简介
我们这里采用墨者学院的MongoDB数据库渗透测试题目,其地址为:https://www.mozhe.cn/bug/detail/YXlRYUJPYk1vQjAreHlweVAyMzVTUT09bW96aGUmozhe
开启后,页面如下所示:
点击该下方的新闻处,可以来到如下页面:
注意到该页面url处的id参数,该参数处就存在一个MongoDB的注入点。
此外,题目还给予了我们源码,如下所示:
二、漏洞利用
要对该站点进行SQL注入,首先需要研究该站点的源码。从该站点源码可以看出,我们传入的id参数的数据直接拼接到了MongoDB的数据查询语句中,这样我们就可以通过控制id参数的方式,来进一步实现SQL注入。此外,注意到下方倒数第三、四行处,可以看出显示的字段为title和content。
基于上述源码,与MySQL数据库的SQL注入方式相同,我们先闭合之前的查询语句,并且插入我们自己的查询语句。从query参数的构造可以看出,我们需要使用
'})
来进行闭合,之后,我们只需要写一个return语句,来返回我们所需要的内容。这样,无论id参数后面查询了什么,由于只返回我们构造的return的内容,因此原来的查询结果不会对我们的SQL注入返回造成影响。
我们依据上述原理,构造id参数如下所示:
id=1%27});%20return%20({title:1,content:%272
访问后,结果如下:
从上述结果可以看出,我们构造的payload可以成功在页面上回显。
之后,我们首先来查看MongoDB数据库中有哪些数据表。将上述payload中的title内容(也可以是content)换成tojson(db.getCollectionNames()),其中db.getCollectionNames()是MongoDB数据库中用于查询数据表的函数,tojson()函数是将其转换成json格式返回。
修改后的payload如下所示:
id=1%27});%20return%20({title:tojson(db.getCollectionNames()),content:%271
使用该payload后,得到的页面回显如下所示:
最后,我们需要查询数据表内的数据,我们猜测Authority_confidential为记录用户名、密码的数据表(当然了,如果猜不对还可以测试别的表),因此我们来查询该数据表内的数据,MongoDB数据库的数据表查询位db.Authority_confidential.find(),根据该语句构造的payload如下所示:
id=1%27});%20return%20({title:tojson(db.Authority_confidential.find()[1]),content:%271
利用该payload执行产生的回显如下所示:
从上图中,我们可以得到一个用户名mozhe和密码的md5加密值,我们对该md5进行解密,结果如下所示:
我们利用该用户名和密码登录系统,结果如下所示:
注意看最下方的数值,可以看出我们得到了最后的KEY值。
墨者学院刷题笔记——SQL手工注入漏洞测试(MongoDB数据库)相关推荐
- MongoDB数据库注入-墨者学院(SQL手工注入漏洞测试(MongoDB数据库))
本期来为大家讲解的sql注入题目是来墨者学院的SQL手工注入漏洞测试(MongoDB数据库). 地址:http://124.70.71.251:46804/new_list.php?id=1(注意这里 ...
- 墨者学院01 SQL手工注入漏洞测试(MySQL数据库)
问题描述 鉴于我已经两周没能成功运行攻防世界的靶场环境...于是昨天又搜了一些网站,感觉墨者学院的题目还可以~ SQL手工注入虽然是一个已经被安全博主讲烂的主题,但是我之前很少有从头到尾实践手工注入的 ...
- Oracle数据库注入-墨者学院(SQL手工注入漏洞测试(Oracle数据库))
本期来为大家讲解的sql注入题目是来墨者学院的SQL手工注入漏洞测试(Oracle数据库). 地址:http://124.70.22.208:42948/new_list.php?id=1(注意地址已 ...
- 墨者靶场-SQL手工注入漏洞测试(MySQL数据库-字符型)
0x00 前言 我们都知道,SQL注入分数字型和字符型,我们上次讲的是最基本的数字型SQL注入,这次我们就来讲最基本的字符型SQL注入.同样,如果是明白原理和方法的话,看懂这篇文章并不难,但是如果不清 ...
- SQL手工注入漏洞测试(Oracle数据库)
SQL手工注入漏洞测试(Oracle数据库) 0x01前言 本文旨在讲述Oracle数据库多种情况下如何进行注入 靶场地址:SQL手工注入漏洞测试(Oracle数据库)_SQL注入_在线靶场_墨者学院 ...
- 《墨者学院——SQL手工注入漏洞测试(MySQL数据库)》
作者: susususuao 免责声明:本文仅供学习研究,严禁从事非法活动,任何后果由使用者本人负责. 一:思路 背景介绍 安全工程师"墨者"最近在练习SQL手工注入漏洞,自己刚搭 ...
- 墨者靶场:SQL手工注入漏洞测试(MySQL数据库)
有一说一,本来是准备把笔记写在墨者的解题思路里的,结果不让写了,离谱 启动靶场后,会进入一个登录界面,界面下面有一个维修公告,打开公告. 1.判断有没有注入点: 219.153.49.228:4946 ...
- 墨者 SQL手工注入漏洞测试(MySQL数据库)
测试注入点 http://124.70.64.48:40014/new_list.php?id=1sdaf 不显示,说明存在注入点 order by http://124.70.64.48:40014 ...
- SQL手工注入漏洞测试(Db2数据库)
漏洞复现 用order by测试,发现可以,并测试到字段为4 用union select 1,2,3,4 发现失败 union select 1,2,3,4 from sysibm.systables ...
最新文章
- python 操作mysql 返回字典_Python查询Mysql时返回字典结构的代码
- android n进入分屏代码分析_智慧分屏为“何物”?华为MatePad Pro解锁便捷又高效的新姿势...
- python中的format什么意思中文-Python中.format()常见的用法
- 优秀简历要遵循哪些规则
- Windows 下的 7 种 DLL 劫持技术
- python实现一个简单的加法计算器_Python tkinter实现简单加法计算器代码实例
- 使用adb install 时 提示error: more than one device and emulator
- linux修改文件权限和用户组管理小结
- ELK根据服务类型收集多个容器数据
- 那个清华哈佛双料女学霸, 辞职了
- python安装notebook_Jupyter Notebook环境安装
- win10远程桌面Android软件,微软远程桌面安卓版
- MongoDB应用记录
- VUE面试题-2022
- B 站视频下载器(BV号、dash、音视频分离)
- python实用库之schemdraw不只是绘制原理图
- swing-组件Collapse折叠面板2
- ios系统铃声调用方法
- wps透视表列总计移到顶部_数据透视表总计中的错误
- 虽然分模块了,但是 mapActions 写法,照样可用
热门文章
- python写的平行四边形_python 已知平行四边形三个点,求第四个点的案例
- Leetcode-974 和可被 K 整除的子数组
- 《Python数据分析基础教程:NumPy学习指南(第2版)》笔记16:第七章 专用函数2——金融函数
- 计算机硬件软件分析图,中国工业软件产业链全景图布局及企业分析
- 悬浮框支持可拖动(已解决拖动后刷新回到原点的问题)
- 相关高斯分布的MIMO信道矩阵的容量统计特征推导
- 双层循环遍历 减少时间复杂度
- Mysql 通过 binlog日志 恢复数据(数据搞丢看过来)
- 读取NTU-RGB-D数据集并利用关节信息生成gif
- 联合体union内有数组的情况