主流短视频直播web端 X-Bogus及直播间弹幕接口分析

举报
yd_273377849 发表于 2022/10/19 10:24:14 2022/10/19
【摘要】 ​ 1.首先找一个人少的直播间测试2.进入直播间过一段时间,抓包发现一直在向两个接口持续发送请求​编辑 batch/为日志接口/webcast/im/fetch/  该接口响应的内容乱码,但根据经验推测为弹幕接口​编辑​编辑 msToken在cookie中可以找到,那么就剩下X-Bogus和_signature,经测试_signature并不校验,目前某主流短视频很多接口都不校验_signa...

 1.首先找一个人少的直播间测试

2.进入直播间过一段时间,抓包发现一直在向两个接口持续发送请求

编辑

 batch/为日志接口

/webcast/im/fetch/  该接口响应的内容乱码,但根据经验推测为弹幕接口

编辑


编辑


 msToken在cookie中可以找到,那么就剩下X-Bogus和_signature,经测试_signature并不校验,目前某主流短视频很多接口都不校验_signature(此时2021-12-11)。X-Bogus和url中的其他参数(包括msToken)缺少一个请求时都会返回空,那么就要搞定这个X-Bogus值

3.全局搜索X-Bogus,很容易就找到位置,可以看出这里的js做了ob混淆

 编辑



打上断点,发现依然在请求该接口但未被断点断住,打上XHR断点断住后在控制台直接调用该函数

编辑

 虽然返回了值,但是该X-Bogus和抓包看到的X-Bogus明显不同,且无法知道实际传参。


初步推测该函数生成的X-Bogus已被弃用,留在这是为了混淆的。后经无数次测试调试最后找到了实际生成X-Bogus的函数,函数调用还是比较复杂的,而且我不会反混淆,只能硬着头皮看。甚是折磨

编辑



可以看到其格式和抓包得到的X-Bogus一致

4.扣代码,补环境

编辑

本地使用nodejs成功生成X-Bogus,每次生成的值都不一样,内部应该有时间戳参与加密,有兴趣的小伙伴可以接着逆向内部算法。

5.直播弹幕接口

最后来调用直播弹幕接口,抓包复制拿来的参数可以再次请求,但过一段时间就会返回空,X-Bogus有一小段生命周期.

使用execjs调用js得到X-Bogus传入请求成功

编辑


除了X-Bogus还需要注意三个值internal_ext,cursor,last_rtt

第一次请求时internal_ext='',cursor=0,last_rtt=-1,然后返回的结果中可以找到internal_ext和cursor, last_rtt没有找到,这里是给的随机值

编辑编辑

 等待1秒后继续请求,如此循环。每次seq都会递增则正常。

虽然能正常请求到数据,但是返回的值还需要进一步解析,比如某某人来到直播间会显示{0.user}来了,送礼会显示{0:user} 送给 {1} {2}个 {3:gift}

编辑编辑

有兴趣的大佬可以做进一步的解析。


该js代码中也找到了生成_signature的函数,应该是最新版(2021-12-11),但旧版的_signature也可使用,网上有大量的文章介绍,而且该接口并不校验_signature,这里就不做赘述了。

编辑


该文章仅做技术交流用途,如有侵权违规请联系本人即刻删除!


交流v:yok3ke

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。