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

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

缺陷编号:wooyun-2014-074058

漏洞标题:搜狗拼音升级时对安装包的校验漏洞可在局域网种马

相关厂商:搜狗

漏洞作者: 路人甲

提交时间:2014-08-27 17:01

修复时间:2014-11-25 17:02

公开时间:2014-11-25 17:02

漏洞类型:非授权访问/认证绕过

危害等级:高

自评Rank:18

漏洞状态:厂商已经确认

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

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

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

简要描述:

搜狗拼音输入法(包括搜狗浏览器)在升级时可以躲过客户端对安装包的校验。
顺便让我废话几句:记得前段时间浏览乌云知识库的逆向基础知识是不需要账号的,后来发现需要账号了,小弟我学习逆向不到两个月,急切渴望学习逆向知识,所以就只好以这篇帖子来获取邀请码了。

详细说明:

搜狗拼音输入法(包括搜狗浏览器)在升级时可以在客户端和服务器端之间被替换包并躲过客户端对安装包的校验。
所用工具:一个抓包发包的工具、WireShark、OllyDbg
搜狗拼音的升级大致过程:经过OllyDbg调试,发现会传递参数“-m”创建一个PinyinUp.exe进程,这个进程或者其子进程下载带有最新版本的搜狗拼音的信息的配置文件(版本不同负责下载和校验安装包的进程不一样,但这不影响最终的对其安装包的替换和校验的躲过),用IDA分析出校验算法采用的是MD5,和用WireShark抓包得出配置文件的格式(因为采用的是http协议,该协议是明文传输,所以很好得出)。整个过程需要替换两次数据包,第一次替换最新安装包的信息的数据包,第二次替换安装包。这里以搜狗拼音为例:
(1)伪造一个配置文件替换真正的最新版搜狗拼音的版本信息配置文件,除了修改的四个地方,其它要和原来的配置文件保持一致,配置文件的内容如下:

[sogouime]
versiontype=final
webversion=2.0.0.0
webversiontype=final
version=7.2.0.2935
url=http://ime.files2.sogou.com/sogou_pinyin_7.2.0.2935_chup.exe
md5=你自己的文件的md5值
filesize=你自己的文件的大小,字节为单位
[product0]
pid=0
version=7.2.0.2935
url=http://ime.files2.sogou.com/sogou_pinyin_7.2.0.2935_chup.exe
md5=你自己的文件的md5值
filesize=你自己的文件的大小,字节为单位


(2)替换你自己的程序,你自己的程序的md5值和文件大小要和伪造的配置文件的中md5值和文件大小保持一致。
当然以上两步需要一个抓包发包的工具,我是在VM装的XP虚拟机里测试的,目标网卡为VMnet8。

漏洞证明:

搜狗拼音升级时真正的配置文件截图.jpg


伪造的配置文件截图.jpg


自己写的md5算法程序对自己用来替换安装包的程序的校验值.jpg


替换安装包的程序的大小.png


测试结果.jpg

修复方案:

没有想到很好的修复方法,感觉校验一直是一个难题,至少在我的观念里是这样。目前能够想到的就是建议采用https传输。

版权声明:转载请注明来源 路人甲@乌云


漏洞回应

厂商回应:

危害等级:中

漏洞Rank:5

确认时间:2014-09-01 16:58

厂商回复:

感谢支持,欢迎到SGSRC平台提交漏洞

最新状态:

暂无