反爬虫之又有新的设备指纹识别爬虫了

渗透技巧 11个月前 admin
193 0 0

前言

这篇文章是转载的大黄脸哥哥的博客,原文地址:

 

https://blog.seeflower.dev/archives/253/



正文


widevine通常用来做drm授权,具体能做什么还请自己查询资料
其工作原理简单来说就是:客户端内置一个RSA私钥,当然这个私钥通常是白盒实现或者存放在安全可信的硬件中,然后通过一列的加解密,和授权服务器交互数据实现DRM物料的加密key的交换
当然其中的过程还是相当复杂的,总而言之很难把私钥搞到,即使搞到了,widevine官方也会很快下发新版本然后revoke这个私钥
在上述提到的授权及交换数据的过程中,会涉及到客户端的唯一标识符,也就是要确定客户端的唯一性(要不然怎么鉴权)
现代浏览器基本上都对widevine做了支持,同时也提供了一个叫EME的接口,在客户端可以通过该接口记录一些数据交换的信息
通过EME的接口,我们可以拿到一些关键性的数据,这里恰好有一个项目可以向你演示如何通过EME记录授权过程的关键数据获取:
  • https://github.com/Avalonswanderer/widevine_eme_fingerprinting
先搞一个服务器,要https域名,把html放上去;搞定之后直接访问你的域名+index.html
然后你可以在console中看到一些日志,其中有什么company_name的这一条,复制下来
然后转成二进制保存,用项目中的utils/get_device_info.py做下信息提取

反爬虫之又有新的设备指纹识别爬虫了

然后你就能得到这样的结果,这里的Cert Serial Number就是你电脑浏览器的唯一标识符了,即使你使用隐身模式也不会改变

 

编者注:看到这里,我只能说,牛逼

 


反爬虫之又有新的设备指纹识别爬虫了

那么这个我们怎么拿来为己所用呢?
简单来说就是你可以在记录之后,传到自己的服务器上,收集这个信息
你说客户端可以篡改这个消息?不怕,我们可以在收集到这个信息之后做验证
怎么操作呢?答案很简单:重放
通过抓包可以知道刚才那个log打印出来的就是这个请求的payload

反爬虫之又有新的设备指纹识别爬虫了

我们尝试修改Cert Serial Number的内容进行重放会发生什么?
如图,如果改变了原来的Cert Serial Number部分,响应将会出现INVALID_LICENSE_CHALLENGE

也就是说如果客户端想伪造这个Cert Serial Number部分,那么我们可以检查出来

反爬虫之又有新的设备指纹识别爬虫了

你可能想问Cert Serial Number部分之外的部分一起修改,有没有可能变成合法的?

答案是:当然可以,但前提条件是你把客户端的私钥搞出来,再做一列的签名运算

前面也说了:

私钥通常是白盒实现或者存放在安全可信的硬件中

一般人真搞不出来:)

总结:

  • 借助EME记录关键的信息,上传自己的服务端

  • 在自己的服务端重放请求,确定payload合法性

  • 从payload中提取Cert Serial Number作为客户端唯一标识


编者注


总之就是,这个widevine指纹,我的感觉有点tls/ja3指纹的意思了,可以用来识别客户端的设备,拿到唯一的id,然后进而针对性的判断啦,你可以拿来玩出花,搞权重,风控检测等等的,详细的操作应该不用我多说了吧

这次,防守方又得一分。爬虫是越来越不好混了啊,难受

原文始发于微信公众号(编角料):反爬虫之又有新的设备指纹识别爬虫了

版权声明:admin 发表于 2023年6月14日 下午12:51。
转载请注明:反爬虫之又有新的设备指纹识别爬虫了 | CTF导航

相关文章

暂无评论

您必须登录才能参与评论!
立即登录
暂无评论...