DVWA系列之7 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系统,还可以使用分号(;),也可以同时执行多条命令。

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

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

时间: 2024-09-29 00:25:00

DVWA系列之7 low级别命令执行漏洞的相关文章

DVWA系列之9 high级别命令执行漏洞

将DVWA Security切换到high级别,在Command Execution中查看网页源码. 这里首先也是用stripslashes函数对获取到的IP地址进行了处理,主要是为了去掉转义后添加的斜杠,原因之前已经解释过,由于在high级别下会自动启用PHP的magic_quotes_gpc魔术引号,对所有的传值数据自动用addslashes()函数转义,所以需要用stripslashes()函数去除. 接下来使用了explode函数,以"."为分隔符将$target变量中的IP地

DVWA系列之2 low级别SQL注入

将Security level设为on,在左侧列表中选择"SQL Injection",然后在右侧的"User ID"文本框中输入不同的数字就会显示相应的用户信息. 我们首先需要判断这里所传输的参数是文本型还是数字型,分别输入3和1+2,观察它们显示的结果并不一致,因而就判断出参数类型是文本型. 点击页面右下角的"View Source"可以查看源代码,其中最重要的是如下图所示的两行语句: 第一行是以GET方式获取用户通过id参数传来的值并赋值给

DVWA系列之24 high级别上传漏洞

最后再来分析high级别的代码: 这里首先有一条语句需要理解: $uploaded_ext = substr($uploaded_name, strrpos($uploaded_name, '.') + 1); 在这条语句里,首先利用strrpos() 函数来查找"."在变量$uploaded_name中出现的位置,然后将得到的数值加1,最后利用substr()函数从变量$uploaded_name的指定位置截取部分字符串. 总之,这条语句的作用就是从我们所上传的文件名中截取出扩展名部

DVWA系列之23 medium级别上传漏洞分析与利用

下面再来分析medium级别的代码: 这里分别通过"$_FILES['uploaded']['type']"和"$_FILES['uploaded']['size']"获取了上传文件的 MIME类型和文件大小. MIME类型用来设定某种扩展名文件的打开方式,当具有该扩展名的文件被访问时,浏览器会自动使用指定的应用程序来打开,如jpg图片的MIME为image/jpeg. 因而medium与low的主要区别就是对文件的MIME类型和文件大小进行了判断,这样就只允许上传

DVWA系列之10 命令执行漏洞的挖掘与防御

通用的命令执行漏洞防御方法通常是使用两个函数:EscapeShellCmd和EscapeShellArg,下面分别来分析这两个函数. EscapeShellCmd()函数可以把一个字符串中所有可能瞒过Shell而去执行另外一个命令的字符转义,比如管道符(|).分号(;).重定向(>).从文件读入(<)等. 下面我们来测试一下这个函数是否管用,以low级别的命令执行漏洞为例,对应的网页文件为D:\AppServ\www\dvwa\vulnerabilities\exec\source\low.p

NETGEAR 系列路由器命令执行漏洞简析

NETGEAR 系列路由器命令执行漏洞简析 2016年12月7日,国外网站exploit-db上爆出一个关于NETGEAR R7000路由器的命令注入漏洞.一时间,各路人马开始忙碌起来.厂商忙于声明和修复,有些人忙于利用,而我们则在复现的过程中寻找漏洞的本质. 一.漏洞简介 1.漏洞简介 2016年12月7日,NETGEAR R7000路由器在exploit-db上被爆出存在远程命令执行漏洞,随着安全研究人员的不断深入,R8000和R6400这两款路由器也被证实有同样的问题. 2016年12月1

小白日记36:kali渗透测试之Web渗透-手动漏洞挖掘(二)-突破身份认证,操作系统任意命令执行漏洞

手动漏洞挖掘 ###################################################################################### 手动漏洞挖掘原则[会比自动扫描器发现的漏洞要多,要全面] 1.每一个变量都进行尝试 2.所有头[如:cookie中的变量] 3.逐个变量删除 #####################################################################################

Samba 4.x.x全版本存在命令执行漏洞

Samba 4.0.0到4.1.10版本的nmbd(the NetBIOS name services daemon)被发现存在远程命令执行漏洞.CVE编号为CVE-2014-3560.目前官方已经发布最新的补丁. 下面是官方公布的漏洞概要: =========================================================== == Subject:     Remote code execution in nmbd == == CVE ID#:     CVE

Metasploit溢出java RMI SERVER命令执行漏洞

利用java RMI SERVER命令执行漏洞,获得目标主机root权限. Java RMI Server的RMI注册表和RMI激活服务的默认配置存在安全漏洞,可被利用导致代码执行. 一.利用nmap工具扫描目标主机 1.1使用nmap命令对目标主机进行扫描.单击桌面空白处,右键菜单选择"在终端中打开". 1.2在终端中输入命令"nmap –sV  192.168.1.3",对目标主机进行端口扫描,发现开放1099端口. 1.3在终端中输入命令"msfco