##SQL注入
一:SQL注入测试规范:
注入漏洞,只要证明可以读取数据就行,严禁读取表内数据。
二:SQL注入原理:
上图中,要明白sql注入是发生在数据访问层中。这就说明在前端中即使没用输入框也会有sql注入发生。
总的来说呢:sql注入发生于应用程序与数据库层的安全漏洞。 网站内部直接发送的SQL请求一般不会有危险,但实际情况是很多时候需要结合用户的 输入数据动态构造SQL语句,如果用户输入的数据被构造成恶意SQL代码,Web应用又未对动态构造的SQL语句使用的参数进行审查,则会带来意想不到的危险。
三:SQL的利用
先要在脑中有个概念,数据库的层级关系:
- 数据库中有多个数据库—> 库中会有多个数据表—>数据表中有多个字段—>字段中存储这我们要的数据.
- 那么我们要在sql注入时要一层一层查询的。
用MYSQl来学习基础的数据库知识。
MYSQL系统库:
1. information_schema库
信息数据库,存放数据库名,数据库表,表字段的数据类型,访问权限等信息。 它里面包含了的表有:
- SCHEMATA表:
当前Mysql实例中所有的数据库信息。字段:schema_name 保存当前数据库服务器里面所有库名的信息。 - TABLES表:
提供数据中表的信息。字段:tables_name,保存了当前数据库服务器中所有数据库表名 。table_schema 是数据库的名称。table_name 是具体的表名。table_type 表的类型。 - COLUMNS表:
提供了表中列的信息。字段:columns_name 保存所有数据库服务器所维护的所有数据库的信息。
2. mysql库:
MYSQL的核心数据库,存放数据库的用户,权限设置,关键字等MySQL自己要使用的控制和管理信息。
3. performance_schema 库:
内存数据库,