SQL注入(SQL注入(SQLi)攻击)攻击-脱库

2022-11-29 15:21:36 浏览数 (1)

确认网站存在SQL注入时,可以对其进行脱库,即获取数据库表中的内容,比如用户的敏感信息

注意 : MySQL5.0以后 才有information_schema这个默认数据库

一库三表六字段

 MySQL数据库中有一个默认数据库 information_schema

这个数据库中有三张特殊的表 

schemata表 , 存储了所有数据库的名字 tables表 , 存储了所有表的名字 columns表 , 存储了所有字段的名字 这三张特殊的表中有六个敏感字段

schemata表的 schema_name字段 , 存储数据库名 tables表的 table_name字段 , 存储表名 tables表的 table_schema字段 , 存储表所在的数据库 columns表的 column_name字段 , 存储字段名 columns表的 table_name字段 , 存储字段所在的表 columns表的 table_schema字段 , 存储字段所在的数据库

脱库的步骤

具体的SQL需要根据注入类型进行动态变化

查询 information_schema数据库的 schemata表 的 schema_name字段 , 获取所有数据库

代码语言:javascript复制
select schema_name 
from information_schema.schemata;

 查询 information_schema数据库的 tables表的 table_name字段 , 获取所有表(指定数据库)

代码语言:javascript复制
select table_name 
from information_schema.tables
where table_schema='security' limit 1,1

查询 information_schema数据库的 columns表的 column_name字段 , 获取所有字段(指定表)

代码语言:javascript复制
select column_name 
from information_schema.columns
where table_schema='security' 
and table_name='users' limit 1,1

调整 limit 展示不同的分页 , 从而获取到不同的数据 ,获取到所有表和字段以后 , 即可获取表中的数据

代码语言:javascript复制
select username from security.users limit 1,1;

0 人点赞