目录
实训目的
了解和学习DVWA靶场命令注入Command injection漏洞的四个等级
实训环境
Win10(靶机)
Win11(测试机)
实训工具
安装PHPstudy 搭建DVWA靶场(Win10)
安装火狐浏览器以及插件 (win11)
实训准备
命令注入漏洞的原理:
在操作系统中,用户通过浏览器提交执行命令,由于服务器端没有对执行函数进行过滤,从而造成可以执行危险命令。
常见的命令连接符& 、&& 、| 、 ||
- 命令1 & 命令2 :不管命令1执行成功与否,都会执行命令2,也就是命令1和命令2都执行
- 命令1 && 命令2 :先执行命令1执行成功后才会执行命令2 ,若命令1执行失败,则不执行命令
- 命令1 | 命令2 :只执行命令2(将上一个命令的输出作为下一个命令的输入)
- 命令1 || 命令2 :命令1执行失败,再执行命令2(若命令1执行成功,就不再执行命令2)
实训步骤
一、Low等级
在win11上登录DVWA靶场点击command injection 设置等级low,输入命令出现乱码
打开文件所在位置,把编码方式UTF-8改为GB2312
命令连接符 | 不执行命令1直接执行命令2
命令连接符 || 命令1正确执行命令1,不执行命令2
命令1错误不执行命令1,执行命令2
命令连接符 & 命令1和命令2都执行
命令连接符 && 命令1正确,命令1和命令2都执行
命令1错误,命令1和命令2都不执行
二、Medium等级
测试发现,与low等级不同的是,medium等级使用命令连接符&&连接的命令1和命令2,都不执行
查看medium源代码
发现连接符排除了 && ; 所以命令不执行
三、High等级
high等级以上四种命令连接符连接的命令1和命令2都不执行
查看high等级源代码
代码审计:将 $target 字符串中的字符替换为 $substitutions 数组中对应的值。
发现high等级过滤了好多命令连接符,但是”| ”这个过滤是加了空格的,说明这个过滤其实是没用的,只需要”| ”后面直接加入参数,不保留空格,依然可以用这个命令连接符进行命令注入。
使用命令127.0.0.1 |whoami 命令2成功执行
dvwa靶场命令注入漏洞低、中、高等级讲解完成!!!