马蜂窝加速乐分析案例

news/2024/11/27 8:48:55/

本节内容是马蜂窝的cookie生成分析以及该页面m3u8文件地址获取,该网站采用了加速乐(JSL)的混淆和加密,特征比较明显,cookie会经过多次请求后生成。

目标网站链接地址:https://www.mafengwo.cn/i/9754893.html

第一步分析接口,查看数据包。先通过控制台Application中的cookie位置,删除现有的cookie,然后刷新页面抓包,如图1所示:

图1

 

可以发现,请求时页面加载了3次。

第一次请求,响应头中的cookie有__jsluid_s,请求失败。

第二次请求,cookie中多了一个__jsl_clearance_s,请求失败。

第三次请求,cookie的__jsl_clearance_s发生了变化,请求成功获得相应。

对第一次请求内容进行分析,__jsluid_s可以通过请求在set-cookie中直接获得。全局搜索能找到这段代码,但无法在浏览器中显示响应内容。此时需要用抓包工具来查看,打开charles,发现返回的是一段经典的字符混淆。如图1右下角所示。

对第二次请求内容进行分析,如图2所示:

图二

 这看起来像是经典的ob混淆,ob混淆的特征是开头就是大串数组,接下来通过工具进行解混淆,格式化查看,结果如图3所示:

图三

 整段代码的意思大概是方法执行后添加了一个cookie,如图4所示:

图四

 可以发现_0xe5bffc是传进去的参数,_0xe5bffc['tn']就是上面的__jsl_clearance_s,说明执行这里后更新了__jsl_clearance_s。其实到这里就分析完了,在第三次请求中无其他参数,携带着前两次生成的cookie即可进行请求。

接下来根据分析出的流程来编写代码:

import re
import json
import execjs
import requests
import hashlib
# 关闭SSl验证提示
from requests.packages.urllib3.exceptions import InsecureRequestWarning
requests.packages.urllib3.disable_warnings((InsecureRequestWarning))def start():'''发起第一次请求'''# 第一次访问,直接得到JS代码res = session.get(url=url, headers=headers, verify=False)# 正则匹配需要的部分__jsl_clearance_s = re.findall('cookie=(.*?);location', res.text)[0]# 反混淆,分割出cookie的部分__jsl_clearance_s = execjs.eval(__jsl_clearance_s).split(';')[0].split('=')[1]print(f"__jsl_clearance_s:{__jsl_clearance_s}")return then(__jsl_clearance_s)def then(__jsl_clearance_s):'''发起第二次请求'''cookie = {'__jsl_clearance_s': __jsl_clearance_s}# 携带获得的cookie进行第二次访问session.cookies.update(cookie)res = session.get(url=url, headers=headers, verify=False)# 正则提取出go函数部分go = json.loads(re.findall('};go\((.*?)\)</script>', res.text)[0])return parse_cookie(go)def parse_cookie(go):'''根据sha256算法规则反解cookie'''global hafor i in range(len(go['chars'])):for j in range(len(go['chars'])):values = go['bts'][0] + go['chars'][i] + go['chars'][j] + go['bts'][1]if go['ha'] == 'md5':ha = hashlib.md5(values.encode()).hexdigest()elif go['ha'] == 'sha1':ha = hashlib.sha1(values.encode()).hexdigest()elif go['ha'] == 'sha256':ha = hashlib.sha256(values.encode()).hexdigest()# print(ha)if ha == go['ct']:__jsl_clearance_s = valuesprint(f"__jsl_clearance_s:{__jsl_clearance_s}")return end(__jsl_clearance_s)def end(cookie):'''携带cookie第三次访问,提取文件地址'''cookie = {'__jsl_clearance_s':cookie}session.cookies.update(cookie)res = session.get(url=url,headers=headers,verify=False)# 通过正则提取出m3u8文件地址file = re.findall('data-url="(.*?)"',res.text)file = [i for i in file if i]print(file)if __name__ == '__main__':url = 'https://www.mafengwo.cn/i/9754893.html'headers = {'Referer': 'https://www.mafengwo.cn/i/9754893.html','User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.55 Safari/537.36'}session = requests.Session()start()

代码运行成功,结果如图5所示:

图五

 


http://www.ppmy.cn/news/274895.html

相关文章

同程艺龙发布二季度及上半年财报;上海迪士尼度假区推出达菲主题月 | 全球旅报...

同程艺龙发布截至2021年6月30日的第二季度及上半年业绩报告。财报数据显示&#xff0c;二季度&#xff0c;同程艺龙实现营收21.4亿元&#xff0c;较去年同期增长78.1%&#xff1b;经调整净利润4亿元&#xff0c;同比增103%&#xff1b;平均月活跃用户达到2.8亿&#xff0c;同比…

SAE 助力贵州酒店集团从容支撑贵州特产抢购

作者&#xff1a;王彬|杏祉尧|黄枫 项目背景 贵州酒店集团有限公司于 2019 年 2 月 28 日注册成立&#xff0c;是经贵州省人民政府批准并授权省国资委履行出资人职责的省管大一型企业&#xff0c;全资及控股子企业 23 家&#xff0c;自营及委管酒店&#xff08;项目&#xff…

快乐之旅

中秋逛广德寺   中秋那天&#xff0c;我在学校&#xff0c;下午没课&#xff0c;就和同学商量了一起去郊游。我们各自骑者自己的单车&#xff0c;逛了学校周围。风景还可以&#xff0c;心情也很惬意&#xff0c;不过骑着车&#xff0c;欣赏着这美景&#xff0c;总觉得还差点儿…

传统大型国企云原生转型,如何解决弹性、运维和团队协同等问题?

项目背景 贵州酒店集团有限公司于 2019 年 2 月 28 日注册成立&#xff0c;是经贵州省人民政府批准并授权省国资委履行出资人职责的省管大一型企业&#xff0c;全资及控股子企业 23 家&#xff0c;自营及委管酒店&#xff08;项目&#xff09;80 余家&#xff0c;客房近 1.3 万…

爱旅行项目

package cn.kgc.progect;import java.io.*; import java.net.ServerSocket; import java.net.Socket;/*** author * 创建TCP程序 BS版本的服务器*/ public class BSTCPServer {public static void main(String[] args) throws IOException{//1 创建服务器对象ServerSocket 系…

旅游-交通

目录 前言原文交通事故出行交通拥挤路况指路情境常用单词城市道路交通设施公路交通标志前言 加油 原文 交通事故 1.accident [ˈksədənt] n. 事故 car accident 车祸 Three people were injured in the car accident. 在此车祸中有三人受伤。 2.collide[kəˈlaɪd]v…

文化之旅

题目描述 输入 输出 样例输入 2 2 1 2 1 1 2 0 1 1 0 1 2 10 样例输出 -1 数据范围限制 对于 20% 的数据&#xff0c;有 的数据&#xff0c;有 的数据&#xff0c;有 2≤N≤8&#xff0c;K≤5&#xff1b; 对于 30% 的数据&#xff0c;有 的数据&#xff0c;有 的数据…

分享99个ASP整站程序源码,总有一款适合您

分享99个ASP整站程序源码&#xff0c;总有一款适合您 99个ASP整站程序源码下载链接&#xff1a;https://pan.baidu.com/s/1ivSFrhPAAxZifZ7ym6gHkw?pwdv1sc 提取码&#xff1a;v1sc Python采集代码下载链接&#xff1a;采集代码.zip - 蓝奏云 我的博客地址&#xff1a;亚…