漏洞概要 关注数(18) 关注此漏洞
缺陷编号: WooYun-2015-107120
漏洞标题: tipask问答社区xss定向getshell
相关厂商: tipask问答社区
漏洞作者: Aug0st
提交时间: 2015-04-15 13:15
公开时间: 2015-07-14 14:08
漏洞类型: 命令执行
危害等级: 高
自评Rank: 20
漏洞状态: 已交由第三方合作机构(cncert国家互联网应急中心)处理
漏洞来源: http://www.wooyun.org,如有疑问或需要帮助请联系 help@wooyun.org
Tags标签: 设计缺陷/边界绕过
漏洞详情
披露状态:
2015-04-15: 细节已通知厂商并且等待厂商处理中
2015-04-15: 厂商已经确认,细节仅向厂商公开
2015-04-18: 细节向第三方安全合作伙伴开放(绿盟科技、唐朝安全巡航、无声信息)
2015-06-09: 细节向核心白帽子及相关领域专家公开
2015-06-19: 细节向普通白帽子公开
2015-06-29: 细节向实习白帽子公开
2015-07-14: 细节向公众公开
简要描述:
tipask问答社区某工功能xss可以导致getshell,其实只要构造好了问题,不用定向问管理员,只要管理员把问题点了,就能触发导致getshell
详细说明:
tipask问答社区定向提问处未做过滤,导致xss,然后台出可以写文件,然后用前台的提问去提问管理员,管理员前台点开问题即可触发getshell,不需要管理后台交互。其实只要构造好了问题,不用定向问管理员,只要管理员把问题点了,就能触发导致getshell.
漏洞证明:
1.首选来看这个xss,这个应该会和此人的这个有重合,http://**.**.**.**/bugs/wooyun-2010-097876,但是我看不到他的具体细节。(其实此人我认识)
来看,问题出现在了提问处
来看代码,
so弹了
,所以此处证明有xss,其实还有好多处,咱用这一处。
2,下来再看后台可以写shell的证明,在此处
,
来看代码
function onucenter() {
if (isset($this->post['submit'])) {
$this->setting['ucenter_open'] = intval(isset($this->post['ucenter_open']));
$_ENV['setting']->update($this->setting);
if ($this->post['ucenter_config']){
$ucconfig = "<?php\n";
$ucconfig.=tstripslashes($this->post['ucenter_config']);
writetofile(TIPASK_ROOT . '/data/ucconfig.inc.php',$ucconfig);
}
//连接ucenter服务端,生成uc配置文件
$message = 'UCenter设置完成!';
}
include template('setting_ucenter', 'admin');
来看这个函数tstripslashes
function tstripslashes($string) {
if (is_array($string)) {
foreach ($string as $key => $val) {
$string[$key] = tstripslashes($val);
}
} else {
$string = stripslashes($string);
}
return $string;
}
看到stripslashes想到了什么哈哈没错
所以是可以写进去shell的
好了,咱们看两者结合,构造如下.
,提交。管理登陆。
显然我们的js已经加载了。然后看看文件写成功了没。
,文件写入成功。菜刀连接
成功。
3.再附一处程序bug
修复方案:
你们更专业
版权声明:转载请注明来源 Aug0st@乌云
漏洞回应
厂商回应:
危害等级:高
漏洞Rank:10
确认时间:2015-04-15 14:07
厂商回复:
CNVD未直接复现所述漏洞情况,暂未建立与软件生产厂商(或网站管理单位)的直接处置渠道,待认领。
最新状态:
暂无
漏洞评价:
对本漏洞信息进行评价,以更好的反馈信息的价值,包括信息客观性,内容是否完整以及是否具备学习价值