SQL注入报错:Illegal mix of collations for operation ‘UNION‘ (sqli-labs靶场MySQL数据库)
问题背景:在进行SQL注入时,发现注入点后,准备查询information_schema数据库中schema表中的数据库名(schema_name)拼接url:http://127.0.0.1/Less-2/?id=-1 union select 1,group_concat(schema_name) ,3 from information_schema.schemata发现报错:Illegal
问题背景:
在进行SQL注入时,发现注入点后,准备查询information_schema数据库中schema表中的数据库名(schema_name)
拼接url:http://127.0.0.1/Less-2/?id=-1 union select 1,group_concat(schema_name) ,3 from information_schema.schemata
发现报错:Illegal mix of collations for operation ‘UNION’
解决办法:
查看数据库发现,出现这个问题是因为information_schema数据库里面都是utf8_general_ci,而靶场网站user表中的数据都是utf8_unicode_ci。将user表中更改为与information_schema一样的就可以了。
注意:我最开始仅仅更改了表的,但是仍然出现了报错信息,后来发现需要逐一更改每一个字段
查询成功
实际测试:
但是在实战中如果遇到这种状况怎么办?毕竟目标网站不会让你随便更改数据库。在实战中可以用16进制的方式读取。
更改后的url:http://127.0.0.1/Less-2/?id=-1 union select 1,group_concat(hex(schema_name)) ,3 from information_schema.schemata
返回结果:
然后利用在线加解码工具解码就OK了
更多推荐
所有评论(0)