帖子内容
结论:疑似攻击者通过利用错误MIME type实现客户端欺骗。 涉及Telegram中的两个API功能——sendVideo和InputFile。 sendVideo中的video字段支持两种输入方式,“InputFile or String”, - (String)传递一个文件 ID(以字符串形式)来发送存储在 Telegram 服务器上的视频(推荐做法) - (String/InputFile)传递一个 HTTP URL(以字符串形式)以便 Telegram 从互联网获取视频 - (InputFile)使用 multipart/form-data 上传一个新视频。 问题出在第二种,InputFile - Sending by URL时,目标资源可以拥有一个自定义的MIME标签,以指示其他Telegram客户端应该以什么方式加载这个资源。 而这些不怀好意的.pyzw文件,(可能由于漏洞)在这里都被指定为了video/mp4,导致其他Telegram客户端将以播放器模式展示这个文件。 响应标头:>图1< 请求方json: { "dcId": number, "location": { "_": "inputDocumentFileLocation", "id": "*", "access_hash": "*", "file_reference": [ *, *, *, * ] }, "size": 42, "mimeType": "video/mp4", "fileName": "***.pyzw" } 另外,Telegram Desktop的影片播放方式决定了Telegram Desktop将会把这些较小的视讯资源放置在本地下载目录,然后通过“执行”的方式来加载本地影片至内嵌播放器,这也就是为什么在用户点击这些“假影片”后会自动执行攻击者编写的代码。