目錄
根本原因
解決辦法
優化說明
適用范圍
系統兼容性
在 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
,通常無需修改。
-