1、命令注入的概念:命令指的是操作系统的命令,注入表示通过WEB程序在服务器上拼接系统命令。

 2、命令注入实战:

首先我们先打开DVWA,将安全级别调至为low级别,忘记了的可以参考之前的章节进行设置,然后我们去到Command Injection进行测试。

由图可知,这里让我们输入ip地址,我们输入127.0.0.1,咦,发现返回值与我们的系统ping命令返回很像,于是我们在cmd执行对比发现,的确是一样的。

这里有的人可能显示的是乱码,乱码解决办法:打开项目的目录:x://.../DVWA/dvwa/includes,打开dvwaPage.inc.php文件

把这里的utf-8 改为gb2312 ,保存一下便可,如下图:
 那么我们接着开始命令注入,还记得注入的三步骤吗?我们已经确定了第一个是调用了系统命令:

那么接着来做第二步,判断可控字段,判断函数可控还是参数可控,我们可以发现,ping和空格是固定的,ip地址可控,完成确定可控字段。

最后一步,确认注入的字段,下图蓝色部分为注入命令:127.0.0.1&&net user

结果发现,&&后面字段也被执行,至此注入漏洞确定:

 破解完low级别后,是不是很轻松呢?那么将级别调为中等吧,我们再次相同命令注入发现,页面报错为“未知错误 net”,那么windows下还有什么符号可以连接两条命令呢?其实一个&符号也可以连接。

输入127.0.0.1&net user后,我们命令注入成功,界面成功显示。

 我们接着来破解high级别的,尝试前面的命令都不可以了。那么还有其他命令可以连接呢?管道符(|),我们试着来注入下:127.0.0.1 |net user

我们发现第一个命令未执行,但是这不影响我们注入,因为我们的目的就是执行第二个命令,ok,这也被成功注入了,那么我们接着改为impossible级别。

这个级别我们发现对ip的写法的限制:

四种符号区别如下:

 

  下面是一些实战技巧,大家可以看下:

windows下:

 

linux下还支持单引号:

 

 

 

 

 

posted on 2018-01-24 23:42  ~泪小白~  阅读(418)  评论(0编辑  收藏  举报