Keywords:DVWA,Illegal mix of collations for operation ‘UNION’

今天同学在做作业的时候遇到了这个问题过来请教我。

问题

之前在学习的时候没遇到过这个问题(2018年的时候我学的DVWA,后来上网查资料的时候发现这个问题在2019年下旬才开始出现,应该和PHPstudy的更新有关系,之前我用的是老版本PHPstudy一切正常,现在用新的之后也遇到了这个问题)。

本来以为很快就能解决的,结果用了一个多小时才解决掉。大多数的时间都花在了找资料还有和命令行较劲上了,后来发现命令行实在是有问题(修改过之后的值就是死活不能保存)。在github上下载的最新版本代码也不行,故决定直接自己修改DVWA的源码,反正又不是看不懂,淦。

下面是修改办法:

  1. 打开DVWA安装目录里的MySQL.php文件。

一般都是WWW目录,不过我自己设置为Demo目录了,不必在意。

第一步

  1. 如图所示,在$create_db这个变量的赋值语句里加上一小段

COLLATE utf8_general_ci

一定要注意空格,在 }COLLATE之间有一个空格,如果不加上就会出错。

步骤2

完整的语句我也放在这里,省的复制也能复制错。

$create_db = "CREATE DATABASE {$_DVWA[ 'db_database' ]} COLLATE utf8_general_ci;";

  1. 在Setup / Reset DB页面重新建立DVWA数据库

步骤3

  1. 成功!

成功执行命令

声明

声明