概述

能显示表情图片成了现在的聊天软件必备基本功能,这就需要支持展示富文本的控件。

聊天软件主要用到两种富文本格式:RTF和HTML格式。

RTF可以采用RichEdit、HTML可以选择浏览器内核,比如Windows自带的IE内核。

淘宝旺旺用的就是IE内核作为聊天内容展示区,QQ使用的则是RichEdit。

用浏览器内核作为展示的聊天软件,可能就存在被注入JS的风险。

一年前的帖子:http://topic.csdn.net/u/20100908/23/41ac25c9-3b4c-4b55-b1b7-0903ba23ca7e.html

漏洞早已经修复,现在发出细节,好让大家注意防范。

软件一但在别人的机器了运行,状态就不在你的控制范围。

起因

当时一个朋友在询问我:如何用旺旺自动发送带彩色的文字。

经我分析:输入框是用的是richedit,正好之前做过跨进程访问richedit的探索:http://blog.csdn.net/zswang/article/details/2645555

研究了会发现:展示区是IE内核,字体名可以自由控制,并且也没对字体名进行编码。

确定存在“浏览器内核聊天软件通过字体名注入脚本的漏洞”

经过

操作系统会提供当前已经安装的字体列表,比如:宋体、黑体、Verdana等等。

这些字体名一般不会出现特殊符号,但通过修改内存、跨进程控制控件的方式可以修改字体名,比如可以添加一个字体名为:“><b>test</b”。

如果展示的代码是:

append("<font name=" + fontname + ">" + htmlencode(context) + "</font>")那么添加到展示区的就是:
“<font name=><b>test</b>context</font>”

如果看到粗体的test,恭喜第一步成功。

但字体名有长度是有限的,旺旺里限制24个字符。

24个字符要写比较复杂的攻击脚本还是挺难。

还好旺旺里一段聊天内容可以支持多个字体,这样就可以拼接在一起,注入理想长度的攻击脚本。

比如:

append("<font name=" + fontname1 + ">" + htmlencode(context1) + "</font>")append("<font name=" + fontname2 + ">" + htmlencode(context2) + "</font>")fontname1设置为:“><script>/*”

context1设置为:“*/alert('hello');/*”

fontname2设置为“*/</script”

那么添加到展示区的就是:
“<font name=><script>/**/alert('hello');/*</font><font name=*/</script>context2</font>”

结果

找几个小白鼠试了一下,证实攻击有效,向官方报告了漏洞并得到及时的修复。

参见第一个链接。

总结

1、“不要信赖客户端的提交的数据”包括通过系统api获取的数据;

2、展示时,动态拼接的内容都经过编码处理;

3、发现漏洞及时报告,因为你能发现了,别人也能发现,早点修复漏洞避免无辜的人受到损失。

公布一年前发现阿里旺旺的一个xss漏洞的细节。相关推荐

  1. 案例分析---我是如何在谷歌财经发现一个XSS漏洞

    我是如何在谷歌财经发现一个XSS漏洞 本文由 伯乐在线 -伯乐在线读者 翻译自Michele Spagnuolo.转载请参见文章末尾处的要求. 导读:我们在6月13日发了一篇资讯,说"Goo ...

  2. 阿里旺旺买家版发现升级模块遭到劫持用来投放病毒

    此前火绒安全实验室已经截获利用腾讯QQ升级模块漏洞传播病毒的案例, 随后腾讯发布新版本对漏洞进行修复. 然而阿里旺旺买家版日前也被发现升级模块存在劫持投毒的问题, 且阿里旺旺与腾讯QQ存在的漏洞也是相 ...

  3. 安装 SQL SERVER 2008经验小结发现 它与淘宝旺旺冲突导致淘宝旺旺无法登陆的原因,及个人感想(阿里旺旺 6.0.3 已修正此问题)...

    安装 SQL SERVER 2008经验小结发现 它与淘宝旺旺冲突导致淘宝旺旺无法登陆的原因,及个人感想 就是这个这个可恶的家伙,浪费我一天时间 浪费了一天时间确定下载是它的问题,因为电脑里面装的软件 ...

  4. win7系统下阿里旺旺无法登陆怎么解决

    阿里旺旺是一款购物聊天工具,许多用户为了方便跟卖家联系,都会在电脑中安装使用,但是有些win7系统用户在使用阿里旺旺的时候却发现无法登陆,这是怎么回事呢,本文就给大家讲解一下win7系统下阿里旺旺无法 ...

  5. ubuntu安装微信、QQ、企业QQ、阿里旺旺等

    ubuntu安装微信.企业QQ.阿里旺旺等 前言 具体情况 gitee地址如下 使用说明 可使用deepin发布的最新版容器安装包: 最新QQ无法使用解决方案 最新微信(wechat)无法使用解决方案 ...

  6. 阿里走向下一个竞技场

    来源|新眸 编辑|栖木 文|祝一一 就当下而言,社区团购本身并不存在多深的护城河,进入门槛并不高. 社区团购在经过2019年的"集体性失声"后,没想到会在2020年春节后因为疫情的 ...

  7. 混乱的淘宝,堕落的阿里旺旺

    如果不是要在淘宝上买东西,如果不是淘宝只接受客户端版的阿里旺旺聊天记录作为投诉证据的话,我相信大多数人会跟我一样不愿意去使用阿里旺旺.        淘宝之所以能够如此成功,其关键因素之一就是发明了这 ...

  8. 阿里旺旺分析系列一:实时获取阿里旺旺聊天消息,实现旺旺客服机器人

    目前网络上有为数不多的几款客服机器人.比如某某旺旺机器人.实现的大概机制是获取淘宝旺旺收到的聊天消息.从本地数据库中搜索答案.然后再自动或者手动回复. 本文详细讲述如何分析阿里旺旺和某某旺旺机器人软件 ...

  9. 用php+mysql+ajax实现淘宝客服或阿里旺旺聊天功能 之 后台页面

    在上一篇随笔中,我们已经看了如何实现前台的对话功能:前台我限定了店主只有一人,店铺只有一个,所有比较单一,但后台就不一样了,而后台更像是我们常见的聊天软件:当然,前台也应该实现这种效果,但原理懂了,可 ...

最新文章

  1. 【2015-10-19】内存管理---深浅拷贝,autorelease,ARC(自动引用计数)
  2. 4路组相连cache设计_Cache组织方式
  3. python多线程编程_Python 多线程编程
  4. storage theory
  5. Banana PI 开源硬件项目启动
  6. 一体机硬盘被格式化了的资料恢复法子
  7. 恢复html的初始选定状态,jQuery实现点击旋转,再点击恢复初始状态动画效果示例...
  8. 20170829,记我第一次电面
  9. PHP框架TP5.1
  10. php旧物交易开源代码_PHP学习笔记:php二手交易市场系统
  11. 解决网站iframe挂马方法
  12. aspose.word给表格插入行或列
  13. kettle 读xml无法获得属性信息,输出表修改不能自动更新修改办法
  14. MATLAB数字图像小系统
  15. 【VB】中CInt()、Fix()、Int()的区别
  16. 一个汉字笔画库 hanzi-writer 的小应用
  17. 进不了PE,进PE黑屏或点阵屏怎么办
  18. 计算机网络(期末复习5、6章)
  19. IPv4 和 IPv6 报文格式详解
  20. 渣渣做后端真题-- 快手2020校园招聘秋招笔试--工程A试卷 选择题

热门文章

  1. 7-3 复数类的操作 (20分)----十分简单的代码
  2. 四种常见软件开源协议介绍-GPL、LGPL、BSD、Apache
  3. 树形数据库查询优化方案
  4. Maven的使用与配置,阿里P7亲自讲解
  5. 第十周 计算1到20的阶乘的和
  6. javaScript函数和方法的区别
  7. jquery ajax 分页 java_jquery +ajax 分页实现
  8. OpenG - 三次B样条曲线
  9. Oracle:简单分析火车票余票查询和座位剩余
  10. JavaScript判断设备类型的实现