# SQL手工注入流程图

![image-20201202194546410](https://img2020.cnblogs.com/blog/2173462/202012/2173462-20201202201258701-1160310406.png)

# MySQL数据库结构

| | MySQL内置库(>=5.7) |
| :——————–: | :———————————————————-: |
| mysql | 保存有账户信息,权限信息,存储过程, event,时区等信息 |
| sys | 包含了一系列的存储过程、自定义函数以及视图来帮助我们快速的了解系统的元数据信息(元数据是关于数据的数据,如数据库名或表名,列的数据类型,或访问权限等) |
| performance_ schema | 用于收集数据库服务器性能参数 |
| **information schema** | 它提供了访问数据库元数据的方式。其中保存着关于 MySQL服务器所维护的所有其他数据库的信息。如数据库名,数据库的表,表的数据类型与访问权限等。 |

# 注入核心原理

MySq内置的 information schema 库,它功能强大,是我们进行MySq注入的基石!
通过 information schema 我们可以窥透整个MySQ的运行情况,也可以查看到数据库中所有的数据信息。

# 查询数据核心语法

| 功能名称 | 查询语句 |
| :——: | :———————————————————-: |
| 查库 | select schema_name from information_schema.schemata |
| 查表 | select table_name from information_schema.tables where table_schema=库名 |
| 查列 | select column_name from information_schema.columns where table_name=表名 |
| 查数据 | select 列名 from 库名.表名 |

# 提示

– 所有类型的sql注入,都是基于查库、表、列语句

– 如果数据太多,导致无法返回查询结果:

查询的场景:可利用 limit限定返回的数量及位置,

依次查询回显数据的场景:*concat*链接多个数据成为一条返回结果

– 在一些场景,想要快速获取数据,需借助工具,如:BurpSuite (**神器**)