今天继续给大家介绍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数据库)相关推荐

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

    本期来为大家讲解的sql注入题目是来墨者学院的SQL手工注入漏洞测试(MongoDB数据库). 地址:http://124.70.71.251:46804/new_list.php?id=1(注意这里 ...

  2. 墨者学院01 SQL手工注入漏洞测试(MySQL数据库)

    问题描述 鉴于我已经两周没能成功运行攻防世界的靶场环境...于是昨天又搜了一些网站,感觉墨者学院的题目还可以~ SQL手工注入虽然是一个已经被安全博主讲烂的主题,但是我之前很少有从头到尾实践手工注入的 ...

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

    本期来为大家讲解的sql注入题目是来墨者学院的SQL手工注入漏洞测试(Oracle数据库). 地址:http://124.70.22.208:42948/new_list.php?id=1(注意地址已 ...

  4. 墨者靶场-SQL手工注入漏洞测试(MySQL数据库-字符型)

    0x00 前言 我们都知道,SQL注入分数字型和字符型,我们上次讲的是最基本的数字型SQL注入,这次我们就来讲最基本的字符型SQL注入.同样,如果是明白原理和方法的话,看懂这篇文章并不难,但是如果不清 ...

  5. SQL手工注入漏洞测试(Oracle数据库)

    SQL手工注入漏洞测试(Oracle数据库) 0x01前言 本文旨在讲述Oracle数据库多种情况下如何进行注入 靶场地址:SQL手工注入漏洞测试(Oracle数据库)_SQL注入_在线靶场_墨者学院 ...

  6. 《墨者学院——SQL手工注入漏洞测试(MySQL数据库)》

    作者: susususuao 免责声明:本文仅供学习研究,严禁从事非法活动,任何后果由使用者本人负责. 一:思路 背景介绍 安全工程师"墨者"最近在练习SQL手工注入漏洞,自己刚搭 ...

  7. 墨者靶场:SQL手工注入漏洞测试(MySQL数据库)

    有一说一,本来是准备把笔记写在墨者的解题思路里的,结果不让写了,离谱 启动靶场后,会进入一个登录界面,界面下面有一个维修公告,打开公告. 1.判断有没有注入点: 219.153.49.228:4946 ...

  8. 墨者 SQL手工注入漏洞测试(MySQL数据库)

    测试注入点 http://124.70.64.48:40014/new_list.php?id=1sdaf 不显示,说明存在注入点 order by http://124.70.64.48:40014 ...

  9. SQL手工注入漏洞测试(Db2数据库)

    漏洞复现 用order by测试,发现可以,并测试到字段为4 用union select 1,2,3,4 发现失败 union select 1,2,3,4 from sysibm.systables ...

最新文章

  1. python 操作mysql 返回字典_Python查询Mysql时返回字典结构的代码
  2. android n进入分屏代码分析_智慧分屏为“何物”?华为MatePad Pro解锁便捷又高效的新姿势...
  3. python中的format什么意思中文-Python中.format()常见的用法
  4. 优秀简历要遵循哪些规则
  5. Windows 下的 7 种 DLL 劫持技术
  6. python实现一个简单的加法计算器_Python tkinter实现简单加法计算器代码实例
  7. 使用adb install 时 提示error: more than one device and emulator
  8. linux修改文件权限和用户组管理小结
  9. ELK根据服务类型收集多个容器数据
  10. 那个清华哈佛双料女学霸, 辞职了
  11. python安装notebook_Jupyter Notebook环境安装
  12. win10远程桌面Android软件,微软远程桌面安卓版
  13. MongoDB应用记录
  14. VUE面试题-2022
  15. B 站视频下载器(BV号、dash、音视频分离)
  16. python实用库之schemdraw不只是绘制原理图
  17. swing-组件Collapse折叠面板2
  18. ios系统铃声调用方法
  19. wps透视表列总计移到顶部_数据透视表总计中的错误
  20. 虽然分模块了,但是 mapActions 写法,照样可用

热门文章

  1. python写的平行四边形_python 已知平行四边形三个点,求第四个点的案例
  2. Leetcode-974 和可被 K 整除的子数组
  3. 《Python数据分析基础教程:NumPy学习指南(第2版)》笔记16:第七章 专用函数2——金融函数
  4. 计算机硬件软件分析图,中国工业软件产业链全景图布局及企业分析
  5. 悬浮框支持可拖动(已解决拖动后刷新回到原点的问题)
  6. 相关高斯分布的MIMO信道矩阵的容量统计特征推导
  7. 双层循环遍历 减少时间复杂度
  8. Mysql 通过 binlog日志 恢复数据(数据搞丢看过来)
  9. 读取NTU-RGB-D数据集并利用关节信息生成gif
  10. 联合体union内有数组的情况