一、数据库概述

数据库管理系统有:Mysql、 sql server等

关系型数据库是写进硬盘的,而非关系型数据库速度比较快,写进内存的,关系型数据库遵循ACID理论,而非关系型数据库不一定

这几年的数据库排名

1、Oracle

2、MySQL

3、MSSQL

4、PostgreSQL

5、Memcached

6、Redis

7、mongoDB

8、国内数据库

二、识别数据库

1、根据不同数据库的默认端口号

2、根据报错信息

3、根据各数据库版本查询方法的区别

4、根据各数据库在处理字符串时的区别

5、根据数据库与网页编程语言的搭配

三、数据库语法基础:增删改查

数据库有:库、表、列、字段、值

1、数据库的连接

命令行连接

以下命令末尾记得加;

2.显示系统中所有数据库的名称

输入命令:

show databases;

3.新建数据库student

命令:

create database student;

新建成功后,可再次使用下列命令查看结果:

show databases;

4.使用数据库student

命令:

use student;

5.在数据库student中创建表result

命令:

create table result(id int(8),name varchar(20),city varchar(20),score int(5));

6.在表result中增加数据

本步骤在result中插入如下5行数据:

命令:

insert into result(id,name,city,score) values(1,"wang","beijing",75);

insert into result(id,name,city,score) values(3,"li","shanghai",80);

insert into result(id,name,city,score) values(5,"chen","fuzhou",70);

insert into result(id,name,city,score) values(2,"zhou","xian",90);

insert into result(id,name,city,score) values(7,"han","guangzhou",65);

注意:如果数据是字符型(varchar),必须使用单引号或者双引号包裹!

插入成功后,可用如下命令查询result表中的全部内容:

select * from result;

7.在表result中删除1条数据

例如,删除id=7的数据,可使用以下命令:

delete from result where id=7;

删除成功后,仍然可以用以下命令查看结果:

select * from result;

8.修改表result中的1条数据

例如,修改id=5的数据,将其score设置为60,可使用以下命令:

update result set score=60 where id=5;

修改成功后,仍然可以用以下命令查看结果:

select * from result;

9.查询表result中的数据

例如:

select * from result;
//查询表中所有字段

select name,score from result;
//查询表中的name和score字段

select score from result where name="li";
//查询name为li的学生的分数


四、数据库语法的进阶操作

1.order by的用法

(1)将result表中的数据按照分数(score)从高到低进行排序:

select * from result order by score desc;

其中,desc表示降序(递减);如果从低到高(升序)进行排列,则可以将desc换成asc;如果不加此参数,默认情况下按升序方式排列。

(2)分别尝试以下命令:

select id,name,score from result order by 1;

正常显示以id升序排列的结果。

select id,name,score from result order by 2;

正常显示以name升序排列的结果!按首字母的顺序排序

select id,name,score from result order by 3;

正常显示以score升序排列的结果!

select id,name,score from result order by 4;

报错!因为只查询了三列,4超出范围了。

从以上结果可以总结出,对于以下命令:

select c1,c2,...,cn from result order by M;
order by后面的数字(M)必须小于或等于n(数据库查询的字段数),才能正常显示。如果M>n,数据库就会报错。可以利用这个特点判断数据库查询的字段数。

2.limit的用法

基本格式为:

limit M,N
//表示从第M+1条数据开始,顺序往下查询N条数据

limit M
//表示查询前M条数据

尝试执行以下两条命令:

select * from result limit 0,2;
//查询表中的前2条数据

select id,name,score from result limit 1,3;
//从第2条数据起,往下查询3条数据的id、name和score字段

3.union select的用法

(1)select * from result union select 1,2,3,4;

此语句的查询结果,即是select * from result和select 1,2,3,4查询结果的拼接。

(2)尝试执行以下3条语句:

select id,name,score from result union select 1,2,3;

正常显示!

select id,name,score from result union select 1,2;

报错!

select id,name,score from result union select 1,2,3,4;

报错!

从以上结果可以总结,对于以下命令:

select c1,c2,...,cn from result union select d1,d2,...dm;

后半句union select查询的字段数(m)必须与前半句select查询的字段数(n)相等,数据库才能正常显示结果。与order by相似,可以利用这个特点判断数据库查询的字段数。

(3)尝试执行下列语句

select id,city from result where id=1 and 1=2 
union select name,score from result;

从以上结果可以总结,在已知字段名的情况下,攻击者只要将该字段置于任何能够显示的位置,就可以暴露该字段的值。

4.union select结合information_schema数据库

MySQL(MariaDB)5.5以上版本自带information_schema数据库,其中保存着关于MySQL服务器所维护的所有其他数据库的信息,如数据库名、数据库的表、表栏的数据类型与访问权限等。可以把information_schema数据库看作MySQL(MariaDB)的“目录”!

(1)尝试执行以下两条语句:

show databases;

select schema_name from information_schema.schemata; 

(2)尝试执行以下两组语句:

第一组:

use student;

show tables;

第二组:

select table_name from information_schema.tables where table_schema='student';

两组命令执行结果相同!

当确认了数据库的版本时,可以尝试从这方面入手注入!

其他数据库版本的查询语句看上面!!


以上就是今天的分享,觉得有帮助,记得点赞+收藏,以上所说到的漏洞扫描工具都整理成压缩包了,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】

在这里插入图片描述

img

同时还为准备学习网络安全(黑客)或者正在学习,整理了一套360独家内部资料,包含以下内容,如有需要也可文末获取:

①网络安全学习路线
②20份渗透测试电子书
③安全攻防357页笔记
④50份安全攻防面试指南
⑤安全红队渗透工具包
⑥网络安全必备书籍
⑦100个漏洞实战案例
⑧安全大厂内部视频资源
⑨历年CTF夺旗赛题解析

一、网络安全(黑客)学习路线

网络安全(黑客)学习路线,形成网络安全领域所有的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。

在这里插入图片描述

二、网络安全教程视频

我们在看视频学习的时候,不能光动眼动脑不动手,比较科学的学习方法是在理解之后运用它们,这时候练手项目就很适合了。

三、网络安全CTF实战案例

光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这里带来的是CTF&SRC资料&HW资料,毕竟实战是检验真理的唯一标准嘛~

img

四、网络安全面试题

最后,我们所有的作为都是为就业服务的,所以关键的临门一脚就是咱们的面试题内容,所以面试题板块是咱们不可或缺的部分,这里我给大家准备的就是我在面试期间准备的资料。

在这里插入图片描述

网安其实不难,难的是坚持和相信自己,我的经验是既然已经选定网安你就要相信它,相信它能成为你日后进阶的高效渠道,这样自己才会更有信念去学习,才能在碰到困难的时候坚持下去。

机会属于有准备的人,这是一个实力的时代。人和人之间的差距不在于智商,而在于如何利用业余时间,只要你想学习,什么时候开始都不晚,不要担心这担心那,你只需努力,剩下的交给时间!

这份完整版的网络安全学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】

img

更多推荐