zoukankan      html  css  js  c++  java
  • 安全测试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下还支持单引号:

     

  • 相关阅读:
    Python的包管理工具Pip
    [Reactive Programming] RxJS dynamic behavior
    [Reactive Programming] Using an event stream of double clicks -- buffer()
    [RxJS + AngularJS] Sync Requests with RxJS and Angular
    [Javascript] An Introduction to JSPM (JavaScript Package Manager)
    [Angular 2] 9. Replace ng-modle with #ref & events
    [React] Intro to inline styles in React components
    [AngualrJS + Webpack] Production Source Maps
    [AngularJS + Webpack] Uglifying your JavaScript
    [AngularJS + Webpack] Production Setup
  • 原文地址:https://www.cnblogs.com/leixiaobai/p/8344101.html
Copyright © 2011-2022 走看看