首页 > 数据库 >35岁重学网络安全——SQL注入篇(三)

35岁重学网络安全——SQL注入篇(三)

时间:2025-01-10 09:30:17浏览次数:3  
标签:重学 group users 列数 35 SQL where id select

浪子回头金不换,35岁重学网络安全——SQL注入篇。

本篇内容简介:MYSQL中的查询相关操作以及一些常用函数。

实验环境

security库中做下列测试:use security;

PS:如果已经成功安装了sqli-labs的靶场,在Mysql中已经存在security库。
在这里插入图片描述

基本查询

# select + 列名(*代表所有)from 表名 where 条件语句
select * from users where id = 1;

# 等价写法
select id,username,password from users where id = 1;

# 使用 in() 函数实现;可以用于绕waf
select * from users where id in('3');

在这里插入图片描述

()中的内容优先查询

子查询,优先执行()中的查询语句

select * from users where id = 
	(select id from users where username=('admin'));

在这里插入图片描述

联合查询 union

将查询结果合并为一列进行显示

select id from users union select email_id from emails;

在这里插入图片描述

union查询前后两条语句的结果列数必须相同

列数不同,导致错误

select * from users where id=1 
union 
select * from emails where id = 1;

在这里插入图片描述

解决方法:可以使用任意内容补充欠缺的列

select * from users where id=1 
union 
select *,1 from emails where id = 1;

在这里插入图片描述

group by 分组

group by正常用足数据的分组。但是groupo by还可以用于实现判断数据表中的列数。

在绕过waf时起到很好的作用

分组效果案例

insert into users(id,username,password) values(15,'Dumb','123456');
select * from users;

select count(id),username from users group by username;

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

group by实现查询列数效果

group by后面的数字大于列数时,会产生报错。从而推断出表是列数
可以使用二分法进行列数测试。

select * from users where id = 1 group by 1;
select * from users where id = 1 group by 2;
select * from users where id = 1 group by 3;
select * from users where id = 1 group by 4;  --+ 报错

在这里插入图片描述

order by 排序

默认按照升序排列

效果同group by,一盘用于判断数据表的列数

# 按照第一列排序:默认升序
select * from users order by 1;
# 按照第二列排序:默认升序
select * from users order by 2;

# 按照第一列排序:降序
select * from users order by 1 desc;

在这里插入图片描述

limit 限制输出行数

从第一行开始,显示三行数据:select * from users limit 1,3;

![[Pasted image 20250106203315.png]]

limit默认从第0行开始计数select * from users limit 0,3;

在这里插入图片描述

and 和 or

and:前后两个条件同时满足

or:前后两个条件满足一个即可

# and语法
select * from users where username='Dumb' and password='123456';

# or语法
select * from users where username='Dumb' or id = 3;

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

常用函数

将数据合并到一行:group_concat()

命令格式:

select group_concat(id,username,password) 
from users;

在这里插入图片描述

查看当前数据库名称:select database()

查询当前正在使用的数据库名称:select database();
在这里插入图片描述

查看当前数据库版本 select version

查看当前数据库的版本:select version();

在这里插入图片描述

无情的广告时间

哈哈哈哈,又到了大家喜欢的广告时间了,喜欢的话给个关注呗,公众号:编码魔坊,点击下方小卡片,扫码即可关注,谢谢您的关注!!!

标签:重学,group,users,列数,35,SQL,where,id,select
From: https://blog.csdn.net/KiWi_VC/article/details/145014858

相关文章

  • 35岁重学网络安全——SQL注入篇(二)
    浪子回头金不换,35岁重学网络安全——SQL注入篇。本篇内容简介:MYSQL中库、表、行和列的基本概念与相关操作基本概念库(Database):库是数据存储的最高级别,可以看作是一个容器,用于存储相关的表集合。一个MySQL服务器可以有多个数据库,每个数据库可以独立管理,互不干扰。例如,一个......
  • 如何通过宝塔面板定时任务重启MySQL服务以保持稳定性和优化性能
    MySQL服务在长时间运行后,可能会因为各种原因导致连接不稳定或内存占用过大,影响网站和应用程序的性能。为了确保MySQL服务的稳定性和优化性能,可以通过宝塔面板设置定时任务来定期重启MySQL服务。以下是具体的操作步骤和建议:理解定时重启的好处:定期重启MySQL服务可以帮助清理缓存......
  • MySQL中的事务和事务隔离级别
    MySQL/MariaDB中的事务和事务隔离级别 分类: 数据库系列undefined官方手册:https://dev.mysql.com/doc/refman/5.7/en/innodb-locking-transaction-model.html1.事务特性事务具有ACID特性:原子性(A,atomicity)、一致性(C,consistency)、隔离性(I,isolation)、持久性(D,......
  • 有效解决 PbootCMS 网站提示“执行SQL发生错误!错误:DISK I/O ERROR”的问题
    定期清理缓存定期手动清理缓存文件,确保磁盘空间不会被占用过多。可以通过后台管理系统的“系统设置”模块进行清理。监控磁盘空间使用系统监控工具(如 df-h 命令)定期检查磁盘空间使用情况。确保有足够的磁盘空间来存储网站文件和数据库。优化数据库定期优化S......
  • Mysql事务的奥秘:探索InnoDB事务原理与MVCC机制
    本文章示例是以mysql8.0版本事务是一组操作的集合,它是不可分割的工作单位,事务会把所有的操作作为一个整体一起向系统提交或者撤销操作请求。即这些操作要么同时成功,要么同时失败。事务四大特性特性描述原子性事务是不可分割的最小单元,要么全部成功,要么全部失败一......
  • day05_Spark SQL
    文章目录day05_SparkSQL课程笔记一、今日课程内容二、SparkSQL基本介绍(了解)1、什么是SparkSQL**为什么SparkSQL是“SQL与大数据之间的桥梁”?****实际意义**为什么要学习SparkSQL呢?**为什么SparkSQL像“瑞士军刀”?**2、SparkSQL与HIVE异同3、SparkSQL的数......
  • day06_Spark SQL
    文章目录day06_SparkSQL课程笔记一、今日课程内容二、DataFrame详解(掌握)5.清洗相关的API6.SparkSQL的Shuffle分区设置7.数据写出操作写出到文件写出到数据库三、SparkSQL的综合案例(掌握)1、常见DSL代码整理2、电影分析案例需求说明:需求分析:四、SparkSQL函数定义......
  • MySql数据库操作
    查看所有数据库:SHOWDATABASES;创建数据库:CREATEDATABASEdatabase_name;删除数据库:DROPDATABASEdatabase_name;选择数据库:USEdatabase_name;查看当前数据库中的所有表:SHOWTABLES;创建表:CREATETABLEtable_name(  column1datatype,  column2datatype,......
  • MySQL死锁的产生、排查与解决
    目录查看当前事务、死锁信息模拟DDL插入模拟数据模拟死锁(需开启不同事务)会话1(窗口1):Alice给Bob转账会话2(窗口2):Bob给Alice转账会话1(窗口1):尝试更新Bob的账户会话2(窗口2):尝试更新Alice的账户PS:关闭事务,结束死锁分析information_schema中的锁信息SHOWENGINEINNODBSTAT......
  • SQL Server 学习指南与资料分享
    SQLServer学习资料https://pan.quark.cn/s/9224aba02ee5SQLServer学习资料https://pan.quark.cn/s/9224aba02ee5SQLServer学习资料https://pan.quark.cn/s/9224aba02ee5在当今数字化浪潮中,数据已然成为企业的核心资产,而SQLServer作为一款强大的关系型数据库管......