DVWA漏洞靶场-命令执行(Command Injection)

漏洞原理

   由于开发人员编写源码,没有针对代码中可执行的特殊函数入口做过滤,导致客户端可以提交恶意构造语句提交,并交由服务器端执行。命令注入攻击中WEB服务器没有过滤类似system(),eval(),exec()等函数是该漏洞攻击成功的最主要原因。

  命令执行分隔符:

  windows:&&  ||  &  

  linux:  &&  ||  &  ;

  |  可作为管道符pipe用于命令执行,其实根本是pipe的作用

  &&:从前往后按顺序执行,遇到出错的命令,后面的不执行

  ||:  从前往后按顺序执行,遇到成功的命令,后面的不执行

  &:  同时执行所有命令

  利用:可尝试进行反弹shell,搭建服务执行wget下载webshell

1.low 级别

127.0.0.1 & ipconfig

执行成功

 

2.medium 级别

查看源码view-source

发现设置了黑名单,对 &&  ; 进行了过滤,替换成空

同上,单 &  或者 || 可绕过

 

3. high 级别

view-source:

进行了更加严格的过滤,注意,这里是对黑名单中所有字符进行替换,&& 也会被替换两次

所有观察 ‘| ’   过滤了 | + 空格,使用无空格 ’|‘ 绕过,即可执行成功

 

总结

根据impossible,防御措施,根据输入需要进行严格过滤,类型白名单特征,而不是单单设置blacklist

 

posted @ 2019-07-30 00:59  芝士粉子  阅读(1394)  评论(0编辑  收藏  举报