重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
下面我们开始分析DVWA中的Command Execution命令执行漏洞。
我们拥有10年网页设计和网站建设经验,从网站策划到网站制作,我们的网页设计师为您提供的解决方案。为企业提供网站建设、成都网站制作、微信开发、成都微信小程序、成都手机网站制作、H5场景定制、等业务。无论您有什么样的网站设计或者设计方案要求,我们都将富于创造性的提供专业设计服务并满足您的需求。首先仍是将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系统,还可以使用分号(;),也可以同时执行多条命令。
另外还可以使用重定向(>)在服务器中生成文件,或是使用(<)从事先准备好的文件读入命令等。
最后,大家可以分别用上面这些符号,自己来构造语句去执行相应的命令。
另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。