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

浪子回头金不换,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();

在这里插入图片描述

无情的广告时间

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

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

道人禅(armey)

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值