7、渗透学习之Mysql注入基础知识点
一、Mysql 5.x数据结构
在Mysql 5.0以上的版本中,为了方便管理员,默认定义了 information_schema数据库,用来存储数据库元信息。其中具有表 schemata(数据库名)、tables(表名)、columns(列名或字段名)
在schemata表中,schema_name字段用来存储数据库名。
在tables表中,table_schema和table_name分别用来存储数据库名和表名。
在 columns表中,table_schema 和 table_name 分别用来存储数据库名和表名。
在columns表中,table_schema(数据库名)、table_name(表名)、column_name(字段名)
information_schema.tables 记录表名信息的表
information_schema.columns 记录列名信息的表
数据库中“ . ” 代表下一级的意思
表名 | 关键字段 |
---|---|
schemata | schema_name[数据库名] |
table | table_schema[数据库名] table_name[表名] |
columns | table_schema[数据库名] table_name[表名] column_name[列名] |
二、SQL增删改查
查询:
SELECT 列名称 FROM 表名称 WHERE 字段1 = '条件1' AND 字段2 = '条件2'
例: select * from admin where username = 'admin';
插入:
INSERT INTO table name ( 列1 、列2 ... ) VALUES (值1 、值2 ....)
例: insert into admin(id,username,password) values(3,'admin3','admin3');
更新:
UPDATE 表名称 SET 列名称 = 新值 WHERE 列名称 = 某值
例:update admin set password = 'admin4' where username = 'admin3';
删除:
DELETE FROM 表名称 WHERE 列名称 = 值
例:delete from admin where username='admin3';
三、Mysql常用函数
Mysql 中常用的聚合函数有一下:
user():查看当前Mysql登录用户名
database():查看当前使用Mysql数据库名
version():查看当前Mysql版本
扩展
limit 关键字 limit m, n 从m行开始,到 m+n 行。
例:select * from admin limit 2,2;
四、注释
注释符:在Mysql中常见的注释符表达式:# 或 --空格 或 //
内联注释:/! SQL语句 / 只有Mysql 可以识别,常用来绕过WAF
例:select * from articles where id = id
使用内联注释注入:select * from articles where id = -1 /!union/ /!select/ 1,2,3,4