芒果云KODExlporer设计缺陷导致随意登陆后台

暗月博客 2019年11月21日20:45:56评论351 views字数 1618阅读5分23秒阅读模式
摘要

芒果云KODExlporer设计缺陷导致随意登陆后台 这个最新版已经失效了 思路不错 转过来学习一下。

芒果云KODExlporer设计缺陷导致随意登陆后台

这个最新版已经失效了 思路不错 转过来学习一下。

狗狗侠

前面兄弟当天提交当天都拿$ 了

今晚我也下套代码研究起来。。。。

慢慢道来。。

在/controller/user.class.php中50行处

}else if(isset($_COOKIE['kod_name']) && isset($_COOKIE['kod_token'])){              $member = new fileCache($this->config['system_file']['member']);              $user = $member->get($_COOKIE['kod_name']);//echo md5($user['password'].get_client_ip());exit();              if(md5($user['password'].get_client_ip()) == $_COOKIE['kod_token']){ //验证出问题的地方                  session_start();//re start                  $_SESSION['kod_login'] = true;                  $_SESSION['kod_user']= $user;                  setcookie('kod_name', $_COOKIE['kod_name'], time()+3600*24*365);                   setcookie('kod_token',$_COOKIE['kod_token'],time()+3600*24*365); //密码的MD5值再次md5                  header('location:'.get_url());                  exit;              }          }

其中可以分析下其中逻辑

当存在以下2个cookie($_COOKIE['kod_name'] $_COOKIE['kod_token'])变量执行下面语句

第二部:

$user = $member->get($_COOKIE['kod_name']);这里的kod_name的cookie是我们能控制的,当我们 kod_name构造好不存在的情况,例如$_COOKIE['kod_name']='DDDDSFADSFAS$#@!#$'这样不存在的情况,其 中$user就false了。

看后面的语句

if(md5($user['password'].get_client_ip()) == $_COOKIE['kod_token'])

这里验证是不是弱爆了?

前面控制好kod_name导致$user不存在。则整个整个条件判断就是我们可以控制的了

我们只要将get_client_ip() md5就行了。

我们看看get_client_ip()

function get_client_ip($b_ip = true){   $arr_ip_header = array(        "HTTP_CLIENT_IP",       "HTTP_X_FORWARDED_FOR",       "REMOTE_ADDR",       "HTTP_CDN_SRC_IP",       "HTTP_PROXY_CLIENT_IP",       "HTTP_WL_PROXY_CLIENT_IP"   );   $client_ip = 'unknown';   foreach ($arr_ip_header as $key) {       if (!empty($_SERVER[$key]) && strtolower($_SERVER[$key]) != "unknown") {           $client_ip = $_SERVER[$key];           break;       }   }   if ($pos = strpos($client_ip,',')){    $client_ip = substr($client_ip,$pos+1);   }   return $client_ip;  }

这里也是可控的。。。顾思路就来了。直接登录后台

攻击步骤:

1、构造一个不存在的kod_name

芒果云KODExlporer设计缺陷导致随意登陆后台

2、第二部,自己查下自己的ip即可,或者伪造个client_ip即可。

例如我本地测试就是对127.0.0.1 MD5一次即可。。

修改kod_token的值

芒果云KODExlporer设计缺陷导致随意登陆后台

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
暗月博客
  • 本文由 发表于 2019年11月21日20:45:56
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   芒果云KODExlporer设计缺陷导致随意登陆后台http://cn-sec.com/archives/72254.html

发表评论

匿名网友 填写信息