乌云(WooYun.org)历史漏洞查询---http://wy.zone.ci/
乌云 Drops 文章在线浏览--------http://drop.zone.ci/
2012-03-13: 细节已通知厂商并且等待厂商处理中 2012-03-13: 厂商已经确认,细节仅向厂商公开 2012-03-23: 细节向核心白帽子及相关领域专家公开 2012-04-02: 细节向普通白帽子公开 2012-04-12: 细节向实习白帽子公开 2012-04-27: 细节向公众公开
起因是发现了xweibo某个注入漏洞,但是后来发现这个功能是需要管理权限的,总是这样大意。。。不过还是找到点好玩的东西。
首先xweibo搞了个路由函数,对用户提交的变量做同一的分配控制 function V($vRoute,$def_v=NULL,$setVar=false){ static $v; if (empty($v)){$v = array();} $vRoute = trim($vRoute); //强制初始化值 if ($setVar) {$v[$vRoute] = $def_v;return true;} if (!isset($v[$vRoute])){ $vKey = array('C'=>$_COOKIE,'G'=>$_GET, 'P'=>$_POST,'R'=>$_REQUEST, 'F'=>$_FILES, 'S'=>$_SERVER, 'E'=>$_ENV, '-'=>$GLOBALS[V_CFG_GLOBAL_NAME] ); if (empty($vKey['R'])) { $vKey['R'] = array_merge($_COOKIE, $_GET, $_POST); } if ( !preg_match("#^([cgprfse-])(?::(.+))?\$#sim",$vRoute,$m) || !isset($vKey[strtoupper($m[1])]) ){ trigger_error("Can't parse var from vRoute: $vRoute ", E_USER_ERROR); return NULL; }省略用户操作功能都封装在了action模块中,action.mod.php,找到sendNotice这个action function sendNotice() { $nowTime = APP_LOCAL_TIMESTAMP; $sina_uid = V('p:uid', 0); $title = trim(V('p:title', '')); $content = trim(V('p:content', '')); $available_time = (int)V('p:available_time', $nowTime); 省略 $rst = DR('notice.sendNotice', '', $title, $content, $sina_uid, null, 0, $available_time); if (!empty($rst['errno'])) { APP::ajaxRst(false, $rst['errno'], $rst['err']); exit; } else { APP::ajaxRst(true, 0); exit; } }没啥限制额,在看看notice中的功能定义 $send_all = $sina_uid === 0 ? true : false; //是否发送给全站用户 if (is_null($sina_uid)) { $sina_uid = array(); } else if (!is_array($sina_uid)) { $sina_uid = (array)$sina_uid; }... ... $data = array(); $data['sender_id'] = $sender_id; $data['title'] = $title; $data['content'] = $content; $data['add_time'] = APP_LOCAL_TIMESTAMP; $data['available_time'] = empty($available_time) ? APP_LOCAL_TIMESTAMP : $available_time; $notice_id = $this->db->save($data, 0, T_NOTICE); if ($notice_id === false) { return RST(false, 1210004, '发送失败,请重试'); }直接构造利用这个actionPOST /?m=api/weibo/action.sendNotice&_=1331620238391 HTTP/1.1.. ..uid=[改为0为群发,其他用户uid为单独发送]&title=[标题]&content=[内容]&available_time=123123123
另外,最后发现显示内容还没有做html格式化,所以还能以管理员名义给全站用户来个xss,这个xss的意义在于可以绕过官方限制做一些加关注,发微博等所有xweibo接口支持的用户操作功能(经过确认xweibo没啥限制),可以控制这个xweibo站点上所有用户/微博用户的行为。
1,notice接口需要身份限制;2,xss问题需要转义;3,其他微博操作接口需要做csrf,referer等检测。
危害等级:高
漏洞Rank:20
确认时间:2012-03-13 18:04
感谢提供,正在处理
暂无