请选择 进入手机版 | 继续访问电脑版
查看: 895|回复: 0

命令注入漏洞medium级别

[复制链接]
  • TA的每日心情
    开心
    2019-11-6 17:43
  • 签到天数: 9 天

    [LV.3]偶尔看看II

    发表于 2019-10-16 22:53:56 | 显示全部楼层 |阅读模式
    本帖最后由 bailancheng 于 2019-10-16 22:53 编辑

    命令注入漏洞medium级别

     medium级别的防御:
    $substitutions = array('&&' => '' , ';' => '', ); 
    定义一个数组并赋值给变量$substitutions,数组中包括2个键:&&和;,它们对应的值都是NULL。


    $target = str_replace( array_keys( $substitutions ), $substitutions, $target );
    用str_replace函数对$target变量中的字符进行替换,替换的方法是将array_keys( $substitutions )替换成$substitutions,也就是将&&和;都替换成空值。
     通过定义黑名单,对敏感字符进行过滤。 
    黑名单不完整,漏洞仍然存在。

    high级别命令注入漏洞:
    $octet = explode(".", $target);
    通过explode函数以“.”为分隔符将$target变量中的IP地址进行分割,分割后会得到一个数组,并赋值给变量$octet。

    if ((is_numeric($octet[0])) && (is_numeric($octet[1])) && (is_numeric($octet[2])) && (is_numeric($octet[3])) && (sizeof($octet) == 4)  )
    用is_numeric函数依次判断$octet数组中的每个值是否是数字型数据,并且还使用sizeof函数判断$octet数组中元素的个数是否是4个。

    常见防范措施:

    对传入的命令进行严格过滤;

    在后台对应用的权限进行控制(比如可以给 PHP 建立单独的账号,控制 PHP 的启动权限)。
    漏洞防御:
    EscapeShellCmd()函数
    把字符串中所有可能瞒过Shell而去执行另外一个命令的字符转义,如管道符(|)、分号(;)、重定向(>)、从文件读入(<)等


    本帖子中包含更多资源

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

    x
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    快速回复 返回顶部 返回列表