通过union进行获取数据-字符型
在pikachu上查询kobe,出现了两个字段id和email
在后台和前端查询是一样的出现数据,也就是有两个字段:id和email
通过sql语句order by 以列的形式排序,没有第三列,所以order by 3 报错
然后在字符型手动测试猜测有几列,可以多次测试看看有多少列。
aaa' order by 3#
如图所示表中没有3列
再来输入一次
aaa' order by 2#
发现输入的被执行了,知识不存在的用户,但是可以判断为是2列,证明有两个字段。
sql语句中的union联合查询语句中,union后面的字段一定要和union前面的字段相同,例如:
select id,email from member where username='kobe' union select username,pw from member where id=1 ;
例如:
如果union前后字段不相同则报错,如下图
在使用union联合查询语句编写payload攻击语句如下:
注意:上面已经判断出是2个字段,所以union后面也只能是2个字段
aaa' union select database(),version() #
aaa' union select database(),user() #
输入payload语句会出现当前的数据库的名称和数据的版本信息