DVWA解决Illegal mix of collations for operation 'UNION'问题
Keywords:DVWA,Illegal mix of collations for operation ‘UNION’
今天同学在做作业的时候遇到了这个问题过来请教我。
之前在学习的时候没遇到过这个问题(2018年的时候我学的DVWA,后来上网查资料的时候发现这个问题在2019年下旬才开始出现,应该和PHPstudy的更新有关系,之前我用的是老版本PHPstudy一切正常,现在用新的之后也遇到了这个问题)。
本来以为很快就能解决的,结果用了一个多小时才解决掉。大多数的时间都花在了找资料还有和命令行较劲上了,后来发现命令行实在是有问题(修改过之后的值就是死活不能保存)。在github上下载的最新版本代码也不行,故决定直接自己修改DVWA的源码,反正又不是看不懂,淦。
下面是修改办法:
- 打开DVWA安装目录里的MySQL.php文件。
一般都是WWW目录,不过我自己设置为Demo目录了,不必在意。
- 如图所示,在$create_db这个变量的赋值语句里加上一小段
COLLATE utf8_general_ci
一定要注意空格,在 }
和COLLATE
之间有一个空格,如果不加上就会出错。
完整的语句我也放在这里,省的复制也能复制错。
$create_db = "CREATE DATABASE {$_DVWA[ 'db_database' ]} COLLATE utf8_general_ci;";
- 在Setup / Reset DB页面重新建立DVWA数据库
- 成功!
声明
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 丿卟离丶的博客!