最新消息:

(二)DVWA之命令执行漏洞源码审计

代码审计 Eternal 2965浏览 0评论

Command Execution

(LOW)

在低级别下,我们在命令执行漏洞提交框,直接输入命令:127.0.0.1&&dir?,显示如下内容!系统命令被正确执行。

20160729113251

我们来打开源代码进行查看。可以看到在接受用户提交数据时,没有进行任何过滤!在命令执行判断语句处,直接使用 shell_exec() 函数,将输入的IP进行ping处理,只做了操作系统的简单辨别。此时,我们只要在IP后使用&&或者;就可以进行多条命令的同时执行!

 

 

20160729111513

(MEDIUM)

在将代码级别修改为中级别后,我们再次输入之前的命令。可以看到返回的结果中,将我们提交的&&符给过滤了!

 

20160729114233

我们再次打开源码查看。可以看到在中级代码内,多了一个过滤的数组语句。将 && 和 ; 号替换为空‘’。然后再将输入的指令提交给 target ,并最终带入执行!

20160729114914

其实以上代码也只是做了,一个简单的过滤,并不严谨过滤的。我们还是可以轻易地绕过它!我们只需将之前的&&连接符,替换为一个&符或者用||代替,同样可以执行命令。如下:

20160729115732

(HIGH)

最后我们来看看高级别的,可以看到当我们输入中级别的命令,直接报错提示!

20160729120111

我们来看看代码做了哪些过滤!可以看到首先代码对用户输入的命令进行了一个 stripslashes() 函数对字符的过滤。接着又使用 explode() 函数对IP进行 . 分割。接着又使用了 is_numeric() 函数来对是否是数字进行判断!最后将过滤后的结果进行拼接。可以看出高等级的代码做了较为严格的过滤,到目前还没有办法进行绕过!

20160729120757

 

 

转载请注明:即刻安全 » (二)DVWA之命令执行漏洞源码审计

您必须 登录 才能发表评论!



合作伙伴