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


Jul 17 2015

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

首页 » 漏洞收集 » 芒果云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

1.jpg

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

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

修改kod_token的值

2.jpg


如果您喜欢本博客,欢迎点击图片定订阅到邮箱填写您的邮件地址,订阅我们的精彩内容:

正文部分到此结束

文章标签: 代码审计 芒果云KODExlporer漏洞 KODExlporer漏洞

版权声明:若无特殊注明,本文皆为( mOon )原创,转载请保留文章出处。

也许喜欢: «C# Invoke 和 BeginInvoke 的真正涵义 | PortScanner 端口扫描工具»

你肿么看?

你还可以输入 250/250 个字

 微笑 大笑 拽 大哭 亲亲 流汗 喷血 奸笑 囧 不爽 晕 示爱 害羞 吃惊 惊叹 爱你 吓死了 呵呵

评论信息框

这篇文章还没有收到评论,赶紧来抢沙发吧~