CMD 命令注入攻击模拟

模拟系统命令注入漏洞,体验如何通过特殊字符注入执行任意命令

[X] 漏洞代码
// 危险:直接拼接用户输入
$cmd = "ping -c 1 " . $target;
exec($cmd, $output);
[OK] 安全代码
// 安全:使用 escapeshellarg
$safe = escapeshellarg($target);
$cmd = "ping -c 1 " . $safe;
exec($cmd, $output);
[TIP] 注入提示:切换到漏洞模式,尝试输入: 127.0.0.1;cat /etc/passwd127.0.0.1|id127.0.0.1&whoami

[DEFENSE] 防御措施

  • escapeshellarg():转义用户输入为安全的命令参数
  • escapeshellcmd():转义整个命令字符串中的特殊字符
  • 白名单验证:只允许预定义的合法字符(如 IP 地址的正则)
  • 避免执行函数:尽量不用 exec()、system()、shell_exec()
  • 最小权限:Web 服务以低权限账户运行

← 返回攻击模拟首页