• 安全测试8_Web安全实战3(命令注入)


     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下还支持单引号:

     

  • 相关阅读:
    【oracle ocp知识点一】
    poj 3280 区间dp
    TextView划线 android
    Apple Watch 集成环信SDK
    Android中使用HttpClient实现HTTP通信效果
    js 数组操作大集合
    5.5二叉树的遍历
    oracle学习之路(二)------数组类型/记录类型的使用
    推荐系统个人理解(实践部分)
    openstack之虚拟机创建流程分析
  • 原文地址:https://www.cnblogs.com/leixiaobai/p/8344101.html
Copyright © 2020-2023  润新知