• Fiddler Classic 替换本地JS并远程调试


    背景

    众所周知,下载的m3u8文件无法直接播放,一般来讲m3u8文件采用AES128对称加密,并提供key、iv、ts列表。当然文件中的key与iv均为加密后的结果,需配合相应的解密文件与偏移量。本文基于某利威的player.js介绍如何利用Fiddler进行远程调试,获取AES128对称加密所需的key与iv。

    设置

    1、下载Fiddler,Fillder Classic即可,支持Windows(当然其它抓包与响应代理工具也可);

    2、设置Tools------Options------HTTPS,勾选Capture HTTPS CONNECTS,勾选Decrypt HTTPS traffic,下拉框中选择 ...from browers only(只抓取浏览器相关网络请求)。

     3、主界面右侧选择Filters,勾选Use Filters,依据实际情况进行过滤设置,这里我设置 Show only if URL contains player.js。

     4、设置AutoResponder,这步是关键,勾选Enable rules、Unmatched requests passthrouth。然后点击Add Rule,默认精确匹配,干掉,直接写player.js,然后添加本地用于调试的JS文件。

     

    实战

    1、打开某网课视频(基于某利威),fiddler将会自动抓取player.js文件,见下图,可见加载的js为本地js。

    2、在本地找到解密的JS,某利威的player.js解密在bt = {...}这段,因此搜索“bt = {”,修改本地js,加入debugger或者console.log即可输出相应信息。

     

    结语

    1、一开始的思路是自己搭建https服务器,利用DNS就近解析本地的js文件,后来发现如果视频网站有额外请求,则本地服务器无法正常响应,因此采用fiddler进行本地代理响应。

    2、针对fiddler提供的本地代理功能,可以说是目前没有较好的解决方法,1)不属于重放攻击,时间戳无效;2)js即时加密,提高复杂度,也可以在浏览器获取原始文件;3)针对js文件不能做防盗链处理,reffer可仿造,token影响效率;4)CA安全证书解决的不是这种类型的安全问题。

    3、网页JS的安全处理有待加强,本文仅限于JS安全技术研究与学习交流,请勿用于非法、商业目的。

  • 相关阅读:
    路由(vue-router)
    Ambari安装部署—基础软件环境说明
    vscode绿色行数设置
    MySQL进阶—索引1
    NOIP 2013 普及组初赛试题
    【示波器专题】示波器的频响方式
    1.2Python 三方库的安装以 pandas 为例_python量化实用版教程(初级)
    windows环境下node安装教程(超详细)
    数据库管理-第四十一期 一堆问题(20221029)
    2-1两数之和
  • 原文地址:https://blog.csdn.net/sword_happy/article/details/127897843