1-sql注入的概述

文章目录

  • SQL注入的概述
          • web应用程序三层架构:
    • 1、SQL注入之语句数据库
        • 1.1 关系型数据库
        • 1.2 非关系型数据库
        • 1.3 **数据库服务器层级关系:**
        • SQL语句语法:
    • 2、SQL注入之系统库
        • 2.1 系统库释义

SQL注入的概述

SQL注入即是指web应用程序对用户输入数据的合法性没有判断或过滤不严,攻击者可以在web应用程序中事先定义好的查询语句的结尾上添加额外的SQL语句,在管理员不知情的情况下实现非法操作,以此来实现欺骗数据库服务器执行非授权的任意查询,从而进一步得到相应的数据信息

web应用程序三层架构:

​ 视图层 + 业务逻辑层 + 数据访问层

1-sql注入的概述_第1张图片

1、SQL注入之语句数据库

数据库就是一个存储数据的仓库,数据库是以一定方式存储在一起,能与多个用户共享,具有尽可能小的冗余,与应用程序彼此独立的数据集合。

1.1 关系型数据库

关系型数据库,存储的格式可以直观地反映实体间的关系,和常见的表格比较相似

关系型数据库中表与表之间有很多复杂的关联关系的

常见的关系型数据库有MySQL,Orcale,PostgreSQL , SQL Server等。

1.2 非关系型数据库

随着近些年技术方向的不断扩展,大量的NoSQL数据库如 Mon goDB,Redis出于简化数据库结构,避免冗余,影响性能的表连接。摒弃复杂分布式的目的被设计

NoSQL数据库适合追求速度和可扩展性,业务多变的场景

数据库排行:https://db-engines.com/en/ranking

1-sql注入的概述_第2张图片

1.3 数据库服务器层级关系:

服务器里面
:多个数据库
:多个数据表
:多个行 列 字段
: 数据

1-sql注入的概述_第3张图片

SQL语句语法:
# 查询当前数据库服务器所有的数据库
show databases;
# 选中某个数据库
use 数据库名字 test
# 查询当前数据库所有的表
show tables;
# 查询t1表所有数据
# 查询关键 select 
# * 所有
# from  表名
select * from t1;
# 条件查询 id=2
where 条件  编程 if(条件 true){执行}

select * from t1 where id=2;
# 查询id=2   pass =111
union 合并查询 
# 2个特性:
# 	前面查询的语句 和 后面的查询语句 结果互不干扰!
#	前面的查询语句的字段数量和后面的查询语句字段数量  要一致

# * == 3
select id from t1 where id=-1 union select * from t1 where pass =111;

# order by 排序
order by 字段名字  
# id  也可以 跟上数字 1 2 3 4 .。。。。。

# 猜解表的列数 知道表有几列  

2、SQL注入之系统库

2.1 系统库释义

提供了访问数据库元数据的方式

元数据是关于数据库的数据,如数据库名和表名,列的数据类型或访问权限。

1-sql注入的概述_第4张图片

1.information_schema 库:是信息数据库,其中保存着关于MySQL服务器所维护的所有其他数据库的信息;

例如数据库或表的名称,列的数据类型或访问权限。有时用于此信息的其他术语是数据字典和系统目录。web渗透过程中用途很大。

	SCHEMATA 表:提供了当前MySQL实例中所有数据库信息, show databases结果取之此表。
	TABLES表:提供了关于数据中表的信息。table_name
	COLUMNS表:提供了表的列信息,详细描述了某张表的所有列以及每个列的信息。column_name

1-sql注入的概述_第5张图片

2、performance_schema库具有87张表。
MySQL 5.5开始新增一个数据库:PERFORMANCE_SCHEMA,主要用于收集数据库服务器性能参数。内存数据库,数据放在内存中直接操作的数据库。相对于磁盘,内存的数据读写速度要高出几个数量级。

3、mysql库是核心数据库,类似于sql server中的master表,主要负责存储数据库的用户(账户)信息、权限设置、关键字等mysql自己需要使用的控制和管理信息。不可以删除,如果对mysql不是很了解,也不要轻易修改这个数据库里面的表信息。
常用举例:在mysql.user表中修改root用户的密码

4、sys库具有1个表,100个视图。
sys库是MySQL 5.7增加的系统数据库,这个库是通过视图的形式把information_schema和performance_schema结合起来,查询出更加令人容易理解的数据。
可以查询谁使用了最多的资源,哪张表访问最多等。

你可能感兴趣的:(SQL注入,sql,数据库)