漏洞概要 关注数(24) 关注此漏洞
缺陷编号:wooyun-2014-050796
漏洞标题:CSDN CODE可完全控制其它用户项目内容(过程+POC代码)
相关厂商:CSDN开发者社区
漏洞作者: blue
提交时间:2014-02-13 09:06
修复时间:2014-03-30 09:06
公开时间:2014-03-30 09:06
漏洞类型:设计缺陷/逻辑错误
危害等级:高
自评Rank:10
漏洞状态:厂商已经确认
漏洞来源: http://www.wooyun.org,如有疑问或需要帮助请联系 [email protected]
Tags标签: 无
漏洞详情
披露状态:
2014-02-13: 细节已通知厂商并且等待厂商处理中
2014-02-13: 厂商已经确认,细节仅向厂商公开
2014-02-23: 细节向核心白帽子及相关领域专家公开
2014-03-05: 细节向普通白帽子公开
2014-03-15: 细节向实习白帽子公开
2014-03-30: 细节向公众公开
简要描述:
最近大家都在黑github,也要关注下国内的项目托管平台嘛,比如http://code.csdn.net
详细说明:
分析过程:
1. 目测code.csdn.net可能用了GitLab,搜索了下,6.5版本之前存在README存储XSS,不过csdn不存在。
2. 刚好看到drops最新一篇文章介绍svg,随手试了下此标签,code.csdn.net的README.md支持,并且没对javascript:***过滤。
3. 查看csrf-token存在meta标签里,并且退出再登录也不会改变。
4. 修改README.md,构造获取uid(将其存储到自己服务器上,以便知道谁中招了),token,ajax请求将自己电脑的ssh public key添加到uid账户上。
5. 现在可以git修改uid用户的项目了~_^
漏洞证明:
1) 以上代码在firefox下使用,想兼容更多请看http://drops.wooyun.org/papers/917
2) 公钥最好再搞个访问地址返回生成的,防止已存在而冲突。(这位置csdn处理的不太合理啊,这样一个人不好参与别人的项目,我都是一public key哪里都用~)
1. https://code.csdn.net/keys 还没有ssh公钥
2. 访问https://code.csdn.net/u013646460/jqueryone
3. 再回来看看
修复方案:
建议过滤xss时设置白名单,只保留<a>,<strong>这些简单的,其它的全部干掉(github就是这么搞的,上啥新标签都替换为空)。
版权声明:转载请注明来源 blue@乌云
漏洞回应
厂商回应:
危害等级:中
漏洞Rank:5
确认时间:2014-02-13 09:33
厂商回复:
尽快修复,多谢!
最新状态:
2014-02-25:已经修复,多谢!