解决 DVWA 联合注入报错:Illegal mix of collations for operation ‘UNION‘ 全指南
一、问题背景在 DVWA 靶场进行 SQL 联合注入测试时很多小伙伴都会遇到一个经典报错plaintextIllegal mix of collations for operation UNION这个报错的本质原因非常明确执行UNION操作时参与联合查询的多个结果集的字符集collation不一致导致 MySQL 无法完成数据合并直接抛出错误。二、报错原因深度解析UNION操作要求前后两个查询的列数、列类型、字符集排序规则完全一致。当 DVWA 的数据库、表、字段使用了不同的字符集比如部分是utf8mb4_general_ci部分是latin1_swedish_ci就会触发这个字符集冲突导致联合注入直接失败。三、两种解决方案从根源解决 快速应急方案一永久修复修改配置一劳永逸步骤 1找到配置文件定位到 DVWA 的数据库配置文件路径为DVWA/dvwa/includes/DBMS/MySQL.php如果是 phpstudy 集成环境路径通常为phpstudy_pro/WWW/DVWA/dvwa/includes/DBMS/MySQL.php步骤 2修改数据库创建语句用编辑器记事本、VS Code、Notepad 均可打开MySQL.php检索关键词$create_db找到这行代码$create_db CREATE DATABASE {$_DVWA[db_database]};修改为注意空格和语法php运行$create_db CREATE DATABASE {$_DVWA[ db_database ]} COLLATE utf8_general_ci;;注意}和COLLATE之间必须有空格否则会语法错误✅ 关键COLLATE前面必须有空格且要写在{}外面不能写错拼写。保存文件后回到 DVWA Setup 页面点击「Create / Reset Database」重新创建数据库。步骤 3重置 DVWA 数据库打开 DVWA 靶场点击左侧菜单的Setup / Reset DB找到Create / Reset Database按钮点击reset database重置数据库重置完成后数据库会统一使用utf8_general_ci字符集从根源解决冲突四、解决页面样式残缺布局错乱页面不完整是因为 CSS/JS 静态资源加载失败按下面步骤修复1.强制刷新浏览器缓存○WindowsCtrl F5○MacCmd Shift R这会强制重新加载所有样式文件解决缓存导致的错乱。若有收获就点个赞吧
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2486704.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!