码迷,mamicode.com
首页 > 其他好文 > 详细

DVWA系列之7 low级别命令执行漏洞

时间:2015-12-08 10:21:17      阅读:194      评论:0      收藏:0      [点我收藏+]

标签:dvwa 命令执行 low 漏洞 教程

下面我们开始分析DVWA中的Command Execution命令执行漏洞。

首先仍是将DVWA Security设置为Low,选择Command Execution,这里在文本框中输入一个IP,点击Submmit提交便可以执行ping命令。

点击“View Source”查看网页源码。

技术分享

可以看到,这里的数据是以post方式提交过来的,然后被赋值给了变量$target。

接下来有一个if语句,判断条件是“stristr(php_uname(‘s‘), ‘Windows NT‘)”,这是用来判断当前的系统是否是Windows,因为Windows和Linux下的ping命令执行参数是不同的。

再下面是将函数“shell_exec( ‘ping ‘ . $target )”的值赋值给变量$cmd,并输出$cmd的值,其实也就是在执行“shell_exec( ‘ping ‘ . $target )”函数,因而shell_exec()函数就是这里的核心了。

shell_exec()函数的作用就是可以在PHP中去执行操作系统命令,因而如果不对用户输入的命令进行过滤,那么理论上就可以执行任意系统命令,也就相当于直接获得了系统级的Shell,因而命令包含漏洞的威力相比SQL注入要大多了。

比如我们在文本框中输入“127.0.0.1 | net user”,实际上就是通过管道符“|”去执行了“net user”命令。明白了原理之后,那么我们完全可以继续执行“127.0.0.1 | net user test 123 /add”、“127.0.0.1 | net localgroup administrators test /add”命令,从而拿下整个服务器。

在DOS下允许同时执行多条命令的符号主要有以下几个:

  • “|”:前面命令输出结果作为后面命令的输入内容;

  • “||”:前面命令执行失败的时候才执行后面的命令;

  • “&”:前面命令执行后接着执行后面的命令;

  • “&&”:前面命令执行成功了才执行后面的命令。

如果是Linux系统,还可以使用分号(;),也可以同时执行多条命令。

另外还可以使用重定向(>)在服务器中生成文件,或是使用(<)从事先准备好的文件读入命令等。

最后,大家可以分别用上面这些符号,自己来构造语句去执行相应的命令。

本文出自 “一壶浊酒” 博客,转载请与作者联系!

DVWA系列之7 low级别命令执行漏洞

标签:dvwa 命令执行 low 漏洞 教程

原文地址:http://yttitan.blog.51cto.com/70821/1720600

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!