[关闭]
@Dukebf 2017-07-11T16:02:38.000000Z 字数 1022 阅读 1795

MySQL注入(一)之常用函数和information_schema

MySQL注入 information_schema


前人轮子
MySQL注入总结
MySQL常用函数

0x00 常用函数

DATABASE() 返回当前数据库名
CONNECTION_ID() 返回当前客户的连接ID
USER()或SYSTEM_USER() 用户名
CURRENT_USRE() 当前登陆用户名
SESSION_USER() 连接数据库的用户名
FOUND_ROWS() 返回最后一个SELECT查询进行检索的总行数
load_file() MySQL读取本地文件的函数
BENCHMARK(count,expr) 将表达式expr重复运行count次
VERSION() || @@version 返回MySQL服务器的版本
@@version_compile_os 返回当前操作系统
@@datadir 读取数据库路径
@@basedir 读取书数据库安全路径

用法示例

select version();

多条数据显示

concat()
group_concat()
concat_ws()

0x01 information_schema

information_schema 数据库中,常用的信息:
SCHEMATA: 存储数据库名
关键字段 SCHEMA_NAME :存储数据库名字

示例: select schema_name from information.schemata;

TABLES:存储表名
关键字段
TABLE_SCHEMA :表所属的数据库名称
TABLE_NAME: 表的名称

select distinct table_schema from information.tables;

COLUMNS: 存储所有字段
TABLE_SCHEMA : 表所属的数据库名称
TABLE_NAME :所属表的名字
COLUMN_NAME : 字段名称

综合示例
根据database()获取数据库名字:

select database();

根据数据库名获取当前数据库所有表名:

select table_name from information_schema.tables where table_schema = (select database());

假设数据库名为 dvwa, 表名为 user
获取user表的所有字段:

select column_name from information_schema.columns where table_schema='dvwa' and table_name='user';

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注