使用了union注入时报错如下:Illegal mix of collations for operation ‘UNION
payload:http://127.0.0.1/sqli-labs/Less-1/?id=-1' union select 1,2,group_concat(table_name) from information_schema.tables where table_schema='security'--+
看网上发现原因是security数据库中表格users的编码与information_schema数据库中不同导致
但新手啥也不会,自己摸索半天终于解决
详细过程如下:
我用的是mysql5.7 apacha2.4 PHP5.5.9(sqli-labs建议用5.5)
首先在sql5.7文件夹bin中找到mysql5.7.exe
复制路径,配置环境变量path
新建一个粘贴上去,配置完成后确定
在sqli-labs文件夹中创建一个文本文档,输入:
cd
start
保存改名为cmd.bat
记得先打开数据库服务,用小皮的在小皮面板启动
打开输入命令mysql -u root -p
并输入数据库密码
输入 show databases;
输入 use security;
show create table users;
发现编码为utf8_unicode_ci
use information_schema;
show create table information_schema.tables;
发现是utf8默认为utf8_general_ci
所以原因锁定开始解决
use security;
返回security数据库
alter table users modify username varchar(20) character set utf8 collate utf8_general_ci;
alter table users modify password varchar(20) character set utf8 collate utf8_general_ci;
修改编码
回到sqli-labs开始测试
成功,完美解决