眾所周知,下載的m3u8文件無法直接播放,一般來講m3u8文件采用AES128對稱加密,并提供key、iv、ts列表。當(dāng)然文件中的key與iv均為加密后的結(jié)果,需配合相應(yīng)的解密文件與偏移量。本文基于某利威的player.js介紹如何利用Fiddler進行遠程調(diào)試,獲取AES128對稱加密所需的key與iv。
1、下載Fiddler,F(xiàn)illder Classic即可,支持Windows(當(dāng)然其它抓包與響應(yīng)代理工具也可);
2、設(shè)置Tools------Options------HTTPS,勾選Capture HTTPS CONNECTS,勾選Decrypt HTTPS traffic,下拉框中選擇 ...from browers only(只抓取瀏覽器相關(guān)網(wǎng)絡(luò)請求)。
3、主界面右側(cè)選擇Filters,勾選Use Filters,依據(jù)實際情況進行過濾設(shè)置,這里我設(shè)置 Show only if URL contains player.js。
4、設(shè)置AutoResponder,這步是關(guān)鍵,勾選Enable rules、Unmatched requests passthrouth。然后點擊Add Rule,默認(rèn)精確匹配,干掉,直接寫player.js,然后添加本地用于調(diào)試的JS文件。
1、打開某網(wǎng)課視頻(基于某利威),fiddler將會自動抓取player.js文件,見下圖,可見加載的js為本地js。
2、在本地找到解密的JS,某利威的player.js解密在bt = {...}這段,因此搜索“bt = {”,修改本地js,加入debugger或者console.log即可輸出相應(yīng)信息。
1、一開始的思路是自己搭建https服務(wù)器,利用DNS就近解析本地的js文件,后來發(fā)現(xiàn)如果視頻網(wǎng)站有額外請求,則本地服務(wù)器無法正常響應(yīng),因此采用fiddler進行本地代理響應(yīng)。
2、針對fiddler提供的本地代理功能,可以說是目前沒有較好的解決方法,1)不屬于重放攻擊,時間戳無效;2)js即時加密,提高復(fù)雜度,也可以在瀏覽器獲取原始文件;3)針對js文件不能做防盜鏈處理,reffer可仿造,token影響效率;4)CA安全證書解決的不是這種類型的安全問題。
3、網(wǎng)頁JS的安全處理有待加強,本文僅限于JS安全技術(shù)研究與學(xué)習(xí)交流,請勿用于非法、商業(yè)目的。
你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機房具備T級流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級服務(wù)器適合批量采購,新人活動首月15元起,快前往官網(wǎng)查看詳情吧