MySQL数据库注入基础
语言分类:解释型语言和编译型语言。解释型语言是一种在运行时由一个运行时组件解释语言代码并执行其中包含的指令的语言。
在解释型语言中,如果程序与用户进行交互,用户就可以构造特殊的输入来拼接到程序中执行,从而让程序依据用户输入执行可能存在恶意行为的代码。
MySQL 5.0以上版本
默认定义了information_schema数据库,用来存储数据库元信息。其中具有表schemata(数据库名)、tables(表名)、columns(列名或者字段名)。
我先在数据库中创建了一个名为smbms数据库,其中含有一个user表,user表含有name字段和password字段。
schemata
在该表中,schema_name字段用来存储数据库名。
tables
该表中,table_schema存储数据库名,table_name用来存储表名
tables表因为是按照数据库来存储的,smbms数据库只有一张表所以只查出了一条行记录出来。
columns
该表中,table_schema表明数据库,table_name表明表,column_name表明字段名
可以看到columns表是以字段名来进行存储的,同样的查询语句,在columns表中能查出一条行记录,在tables表中只有一条行记录。
MySQL常用函数
-
user():查看当前MySQL登录用户名。
-
database():查看当前使用的MySQL数据库名。
-
version():查看当前MySQL版本