乌云(WooYun.org)历史漏洞查询---http://wy.zone.ci/
乌云 Drops 文章在线浏览--------http://drop.zone.ci/
2014-05-25: 细节已通知厂商并且等待厂商处理中 2014-05-30: 厂商主动忽略漏洞,细节向第三方安全合作伙伴开放 2014-07-24: 细节向核心白帽子及相关领域专家公开 2014-08-03: 细节向普通白帽子公开 2014-08-13: 细节向实习白帽子公开 2014-08-20: 细节向公众公开
更新日期: 2014-05-19 12:17:29。。可以修改管理密码 但是修改的密码是不可控的。 还是老老实实注入把。
在api/uc.php中
if(!defined('IN_UC')) { require_once '../app_comm.php'; require_once S_ROOT.'/config/config_ucenter.php'; $get = $post = array(); $code = @$_GET['code']; parse_str(_authcode($code, 'DECODE', UC_KEY), $get); if(DEBUGUC==TRUE){ $get['realtime'] = date('Y-m-d H:i:s', $get['time']); file_put_contents(S_ROOT.'/data/log/uc_client_log.txt', var_export ( $get, 1), FILE_APPEND); } if(time() - $get['time'] > 3600) { exit('Authracation has expiried'); } if(empty($get)) { exit('Invalid Request'); } include_once S_ROOT.'/uc_client/lib/xml.class.php'; $post = xml_unserialize(file_get_contents('php://input'));
默认的uckey为123456.在直接用uckey getshell发现
if($post['UC_API']) { $UC_API = str_replace(array('\'', '"', '\\', "\0", "\n", "\r"), '', $post['UC_API']); unset($post['UC_API']); }
还是来注入把
function updatepw($get, $post) { global $_G; if(!API_UPDATEPW) { return API_RETURN_FORBIDDEN; } $newpw = md5(time().rand(100000, 999999)); db_factory::updatetable(TABLEPRE.'witkey_space', array('password'=>$newpw), array('username'=>$get['username'])); db_factory::updatetable(TABLEPRE.'witkey_member', array('password'=>$newpw), array('username'=>$get['username'])); return API_RETURN_SUCCEED; }
调用这函数。 但是$newpw 是不可控的。。也即使时间戳+随机的。 要修改的用户的名字是可控的。所以可以修改任意用户的密码。。。 但是密码不可控这样比较麻烦啊。 还是来注入把。调用authcode生成一下语句。
调用这个函数
判断是否整合uc否 退出。
危害等级:无影响厂商忽略
忽略时间:2014-08-20 12:06
暂无