网络安全 DVWA通关指南 DVWA Command Injection(命令注入)
DVWACommand Injection(命令注入) 参考文献 WEB 安全靶场通关指南 Low 1、分析网页源代码 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 <?php // 当表单提交按钮(Submit)被触发时执行以下代码 if (isset($_POST['Submit'])) { // 获取用户通过POST方式提交的IP地址数据 // 注意:此处使用$_REQUEST可能会受到GET和POST两种方式的影响,为了安全性建议明确指定来源(如$_POST) $target = $_REQUEST['ip']; // 检查当前服务器的操作系统类型 if (stristr(php_uname('s'), 'Windows NT')) { // 如果是Windows操作系统,则构建用于执行ping命令的字符串 // 使用单引号包围命令并在末尾添加从用户输入获取的IP地址 // 注意:这段代码存在命令注入风险,因为未对$user变量进行任何过滤或转义 $cmd = shell_exec('ping ' . $target); } else { // 否则,认为是类*nix系统(Unix/Linux/Mac OS等) // 构建用于执行ping命令的字符串,'-c 4' 参数表示发送4个ICMP请求包 // 同样,这段代码也存在命令注入风险 $cmd = shell_exec('ping -c 4 ' . $target); } // 将执行命令的结果赋值给 $cmd 变量,并将其作为HTML预格式化的文本显示给用户 // 这里展示了命令执行结果,但也暴露了潜在的安全风险 $html .= "<pre>{$cmd}</pre>"; } ?> 2、网页对参数没有任何过滤,可以使用"&“、”&&“、”|“、”||“逻辑连接符连接命令,直接执行命令。 ...