疑似攻击者通过伪造MIME type实现客户端欺骗,涉及Telegram中的两个API功能——sendVideo
和InputFile
。前置条件: Telegram Desktop Windows <=v4.16.6 + 安装Python环境。
sendVideo
中的video
字段支持两种输入方式,“InputFile or String”,问题出在InputFile - Sending by URL时,目标资源可以拥有一个自定义的MIME标签,以指示其他Telegram客户端应该以什么方式加载这个资源。而这些被篡改且不怀好意的.pyzw
文件,在这里都被指定为了video/mp4
,导致其他Telegram客户端将以播放器模式展示这个文件。
另外,Telegram Desktop Github 库下一条 PR 中提到一个 Bug,能通过某种方式发送 pyzw 格文件,Telegram 会将其识别为视频文件,实现伪装视频效果,Telegram Desktop的影片播放方式决定了Telegram Desktop将会把这些较小的视讯资源放置在本地下载目录,然后通过“执行”的方式来加载本地影片至内嵌播放器,这也就是为什么在用户点击这些“假影片”后会自动执行攻击者编写的代码。
测试样本
详细技术分析
Telegram Desktop 媒体文件处理存在可用于恶意攻击的漏洞