系列文章
简介
渗透测试-地基篇
该篇章目的是重新牢固地基,加强每日训练操作的笔记,在记录地基笔记中会有很多跳跃性思维的操作和方式方法,望大家能共同加油学到东西。
请注意:
本文仅用于技术讨论与研究,对于所有笔记中复现的这些终端或者服务器,都是自行搭建的环境进行渗透的。我将使用Kali Linux作为此次学习的攻击者机器。这里使用的技术仅用于学习教育目的,如果列出的技术用于其他任何目标,本站及作者概不负责。
名言:
你对这行的兴趣,决定你在这行的成就!
一、前言
数据库作为业务平台信息技术的核心和基础,承载着越来越多的关键数据,渐渐成为单位公共安全中最具有战略性的资产,数据库的安全稳定运行也直接决定着业务系统能否正常使用。并且平台的数据库中往往储存着等极其重要和敏感的信息。这些信息一旦被篡改或者泄露,轻则造成企业经济损失,重则影响企业形象,甚至行业、社会安全。可见,数据库安全至关重要。所以对数据库的保护是一项必须的,关键的,重要的工作任务。
通过前几期钓鱼、内网攻防篇章落幕后,引来了服务攻防篇章之数据库渗透篇,不管在外网还是内网环境,只要存在业务系统都存在数据库,在渗透测试对数据库的知识学习是必不可少的,接下来将介绍数据库的渗透基本操作,带小伙伴们了解和学习数据库如何渗透的!
二、查询数据
1、表单查询
1. select * from biao1; #查询所有数据
2. select username from biao1; #查询单个类型数据
3. select username,password from biao1; #查询多个类型数据
2、按条件查询
命令:
select * from biao1 where id=1;
#按指定条件查询
select * from biao1 where id<=1;
关系运算符说明:
= 等于
<> 不等于
!= 不等于< 小于
<= 小于等于
> 大于
>= 大于等于
3、带 IN 关键字的查询
命令:
select * from biao1 where id in(1,2,3);
select * from biao1 where id not in(1,2,3);
4、空值查询
命令:
select * from biao1 where id is not null;
select * from biao1 where id is null;
5、去掉重复查询
命令:
select distinct username from biao1;
6、带 LIKE 关键字进行模糊查询
常用百分号通配符:
命令:
select * from biao1 where username like "d%";
select * from biao1 where username like "%d%";
下划线通配符:
命令:
select * from biao1 where username like "dayu_";
select * from biao1 where username like "d____";
#一个数值加一个_
7、带 AND和or 关键字的多条件查询
带 AND 关键字的多条件查询:
命令:
select * from biao1 where id<7 and username='test1';
带 OR 关键字的多条件查询:
命令:
select * from biao1 where id<7 or username='test1';
select * from biao1 where id=5 or username='test1';
OR 和 AND 一起使用:
命令:
select * from biao1 where id>2 and password='12345116' or username='test';
select * from biao1 where id>2 and password='123456' or username='testa';
select * from biao1 where id>2 and password='123456' or username='test11'
OR 和 AND 一起使用的时候,AND 的优先级高于 OR,因此二者一起使用时,会先运算 AND 两边的表达式,再运算 OR 两边的表达式。
三、高级查询数据
1、聚合查询
命令:
select count(id) from biao1;
select count(*) from biao1;
select sum(id) from biao1;
select avg(id) from biao1;
select max(id) from biao1;
select min(id) from biao1;
COUNT() 返回某列的行数
SUM() 返回某列值的和
AVG() 返回某列的平均值
MAX() 返回某列的最大值
MIN() 返回某列的最小值
2、分组查询
1)单独使用 GROUP BY 进行分组
命令:
select * from biao1 group by password;
select * from biao1 group by username;
2) GROUP BY 和 HAVING 关键字一起使用
select max(id) from biao1 group by username;
select count(id) from biao1 group by username;
HAVING关键字和WHERE关键字的作用相同,区别在于HAVING 关键字可以跟聚合函数,而 WHERE 关键字不能。通常HAVING 关键字都和GROUP BY一起使用,用于对分组后的结果进行过滤。
例如:
命令:
select * from biao1 group by username having sum(id)<6;
#查询sum函数求和中小于6的数据返回
3、使用 LIMIT 限制查询结果的数量
命令:
select * from biao1 limit 1;
select * from biao1 limit 4;
select * from biao1 limit 1,5; #显示1~5的结果
4、为表和字段取别名
1)为表取别名
来源:freebuf.com 2021-07-09 14:34:04 by: dayuxiyou
请登录后发表评论
注册