目录
根本原因
解决办法
优化说明
适用范围
系统兼容性
在 DVWA 的 Command Injection 模块中执行系统命令时,返回结果出现乱码(如图1所示)。
根本原因
DVWA 默认使用 UTF-8
编码,而部分系统命令(如 Windows 的 ipconfig
)的输出是 GBK
编码,导致编码不匹配。(如图1)
解决办法
通过修改 DVWA 的源码,强制指定响应编码为 GBK
:
-
定位文件 找到 DVWA 的配置文件:
/DVWA/dvwa/includes/dvwaPage.inc.php
-
修改编码设置 在
Send Headers + main HTML code
部分(如图2),将以下代码:header( 'Content-Type: text/html; charset=UTF-8' );
改为:
header( 'Content-Type: text/html; charset=GBK' );
-
效果验证 刷新页面后重新执行命令(如
ping 127.0.0.1
),输出应正常显示(如图3)。
优化说明
修改项 | 原值 | 修改后 | 作用 |
---|---|---|---|
charset | UTF-8 | GBK | 匹配中文系统命令输出的编码 |
-
适用范围
-
仅影响 DVWA 的 Command Injection 模块输出。
-
若其他模块出现乱码,需单独处理。
-
-
系统兼容性
-
Windows 系统:命令输出多为
GBK
,此修改有效。 -
Linux 系统:默认
UTF-8
,通常无需修改。
-