zoukankan      html  css  js  c++  java
  • 网络安全学习笔记:命令注入

    命令注入

    1、漏洞的危害

    1、继承Web 服务器程序权限(Web 用户权限)读写文件、执行系统命令
    2、反弹Shell(服务器主动连接攻击方)
    3、控制整个服务器

    2、相关命令

    1、system()函数

    system() 能够将字符串作为OS 命令执行,自带输出功能,需要等待命令执行完成后才会返回结果并输出
        <?php
        $str=$_GET['cmd'];
        system($str);
        ?>
        
    提交参数    ?cmd=ipconfig

    2、exec()函数

    exec() 函数能将字符串作为OS命令执行,需要输出执行结果
        <?php
        $str=$_GET['cmd'];
        print(exec($str));
        ?>
    ​
    提交参数    ?cmd=whoami (返回结果有限)

    3、shell_exec()函数

    shell_exec()函数能将字符串作为OS命令执行,需要输出执行结果
    <?php
    $str=$_GET['cmd'];
    print(shell_exec($str));
    ?>
    ​
    提交参数    ?cmd=whoami (使用最多)

    4、passthru()函数

    passthru()函数 能够将字符串作为OS 命令执行,自带输出功能,
    <?php
    $str=$_GET['cmd'];
    passthru($str);
    ?>
    ​
    提交参数    ?cmd=whoami

    4、popen()函数

    popen()函数,将命令执行结果需要导出到别的文件
    <?php
    $str=$_GET['cmd'].">> 1.txt";
    popen($str,'r');
    ?>
        查看1.txt文件
    提交参数    ?cmd=whoami

    5、反引号

    反引号[``] 内的字符串,也会解析成OS 命令
    <?php
    $str=$_GET['cmd'];
    print `$str`;
    ?>
    ​
    提交参数    ?cmd=whoami

    3、防御方法

    1、尽量减少命令执行函数的使用,并在disable_functions 中禁用
    2、在进入命令执行的函数或方法之前,对参数进行过滤
    3、参数的值尽量使用引号包裹,并在拼接前调用addslashes 进行转义

     

  • 相关阅读:
    图像全參考客观评价算法比較
    单片机project师必备的知识
    ACM-并查集之小希的迷宫——hdu1272
    ArcGIS教程:加权总和
    九度 题目1368:二叉树中和为某一值的路径
    解决solr搜索多词匹配度和排序方案
    具体解释linux文件处理的的经常使用命令
    Hotel
    Unity3D 射线指定层获取GameObject 注意 LayerMask
    ios设计一部WindowsPhone手机
  • 原文地址:https://www.cnblogs.com/Xshun-z/p/13957294.html
Copyright © 2011-2022 走看看