官方公众号企业安全新浪微博
FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。
FreeBuf+小程序
DVWA Command Injection 命令注入全等级分析与实践:
其实看漏洞会觉得这个漏洞很厉害,这相当于拿到了一个shell,但最大的问题不是权限问题,最大的问题是这样的漏洞罕见啊,不像sql注入,xss这样具有很强的通用性,毕竟sql查询,留言等操作,基本上是web很常见的操作,而像这样的cmd的操作,让用户输入,然后把用户输入直接cmd运行很少见。
用户可以执行恶意代码语句,在实战中危害比较高,也称作命令执行,一般属于高危漏洞。
危害:
1.继承Web服务程序的权限去执行系统命令或读写文件
2.反弹shell
3.控制整个网站甚至控制服务器
4.进一步内网渗透
Low:
查看源码:
当中涉及的函数:
源码中暴露的问题:
直接将target变量带入到了shell_exec命令执行的函数中
命令连接符:
传参时注入命令:127.0.0.1 &&dir或者127.0.0.1 &&ipconfig
Medium:
查看源码:
str_replace函数:
源码中暴露的问题:
添加黑名单机制过滤掉了’&&’,’;'两种传参,但还可以使用其他方式
传参时注入命令时使用’|'连接符:
High:
查看源码:
源码中暴露的问题:
看似过滤挺全面的,但其实’| ‘这个中是带空格的,所以我们依然可以使用’|'绕过
Imposssible:
查看源码:
可以理解为白名单过滤,限制了传参只能为数字,且为一串ip地址的形式
Command Injection防护总结:
1.白名单校验命令参数
2.一般情况下尽可能使用白名单彻底解决命令注入风险,但是存在某些场景白名单不支持,例如 命令参数是设备密码,不能用白名单 限制特殊字符(&& || | ;等特殊字符),这时可以考虑使用单引号禁止命令解析功能。