联合查询注入
前提:页面必须有显示位
select * from A union select * from B
两个select必须有相同列且各列的数据类型也相同
注入步骤:
1、找注入点切得到闭合字符
2、判断数据库类型
3、猜解列数,得到显示位
4、得到基本信息(如:数据库名、数据库版本、当前数据库名等)
5、得到数据库名
6、得到表名
7、得到列名
8、得到列值
其中最重要的是页面要有显示位,即爆出来的库信息能在页面上当作正常数据显示出来。然后爆出来的库信息要放在select后相应的位置,
例如:正常的后台sql查询语句是 select name,class,age from student 其中 name,age 正常情况下显示在页面,那么爆出来的库信息就要放在name和age的位置。
注入后的语句 select name, class, age from student union select version(), 1, user() ,如此,version() 和 user()将会显示在 name, age所在的页面位置。