首页
社区
课程
招聘
[原创] 某麦网回流票监控,sing参数分析
2023-10-9 16:47 17309

[原创] 某麦网回流票监控,sing参数分析

2023-10-9 16:47
17309

最近演唱会增多,总是抢不到票,所以想从回流票入手,做一个某麦网的演唱会回流票的监控。
最简单的方向就是从网页端入手。
在演唱会页面看到网页端不支持购买,不慌,咱只是看看有没有票不购买,直接抓包随便一个音乐节的票量接口。
经过抓包得到以下两个链接,分别是
场次接口:

https://mtop.damai.cn/h5/mtop.alibaba.damai.detail.getdetail/1.2/?jsv=2.7.2&appKey=12574478&t=1696836862157&sign=8f6f6d430ae53782832c28c208c9c246&api=mtop.alibaba.damai.detail.getdetail&v=1.2&H5Request=true&type=originaljson&timeout=10000&dataType=json&valueType=original&forceAntiCreep=true&AntiCreep=true&useH5=true&data=%7B%22itemId%22%3A739853478245%2C%22platform%22%3A%228%22%2C%22comboChannel%22%3A%222%22%2C%22dmChannel%22%3A%22damai%40damaih5_h5%22%7D

座次接口:

https://mtop.damai.cn/h5/mtop.alibaba.detail.subpage.getdetail/2.0/?jsv=2.7.2&appKey=12574478&t=1696837077937&sign=2000a8d025a2b8ff407be20a671b5e48&api=mtop.alibaba.detail.subpage.getdetail&v=2.0&H5Request=true&type=originaljson&timeout=10000&dataType=json&valueType=original&forceAntiCreep=true&AntiCreep=true&useH5=true&data=%7B%22itemId%22%3A%22739853478245%22%2C%22bizCode%22%3A%22ali.china.damai%22%2C%22scenario%22%3A%22itemsku%22%2C%22exParams%22%3A%22%7B%5C%22dataType%5C%22%3A2%2C%5C%22dataId%5C%22%3A%5C%22211839138%5C%22%2C%5C%22privilegeActId%5C%22%3A%5C%22%5C%22%7D%22%2C%22platform%22%3A%228%22%2C%22comboChannel%22%3A%222%22%2C%22dmChannel%22%3A%22damai%40damaih5_h5%22%7D

经过验证headers是统一的不会变也没有加密参数,cookie也是一致的但有未知参数**_m_h5_tk**、_m_h5_tk_enc

而这两个接口里的参数大同小异,分别如下
场次接口:

座次接口:

可以看到其中关键参数就是tsigndata,其他参数都是固定的。
其中data显而易见,场次接口的itemId就是这个演出的id,其他参数固定;座次接口的itemId是演出id,dataId就是当前场次的id(例如10.21场),其他参数固定。
接着我们可以打断点看一下这个t和sign是如何生成的。F12调出控制台,下一个xhr断点,可以直接打到"sign"上,也可以打到对应链接上。

刷新一下页面触发断点,找到对应的请求发起js文件。

在这个文件里简单调试下很容易就能找到加密函数

可以看到这个函数就是将
token
csdata,以&进行分隔拼接,然后再进行加密得到sign。
其中token暂时未知,c就是url参数中的t时间戳,s就是url参数中的appKey固定值,data就是url参数中的data的json字符串,简单拼接就行。
所以现在就剩token未知,在函数上打个断点看看:

发现这个token很眼熟,回头看看我们请求所需的cookie,这个token就是cookie中**_m_h5_tk的前半部分,直接拿过来用就可以。
我们拿相同的参数去网上的在线md5加密一下,发现加密结果一致,即这个加密函数就是简单的md5加密。
现在所需要知道的就是
_m_h5_tk是如何产生的,直接回到首页,删除cookie缓存重新抓包,找到set-cookie的那一条请求就行。

可以发现只要在token失效之后,随便发起一条请求携带过期的sign,就会返回新的
_m_h5_tk**,这下大功告成了。
最后再加上VX推送提示,或者其他通知app接口,就完成了回流监控。

2023.10.22更新:
GitHub地址:https://github.com/Raptor-wxw/TIcketMonitoring


[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

最后于 2023-10-22 21:54 被暮至夜寒编辑 ,原因:
收藏
点赞9
打赏
分享
最新回复 (25)
雪    币: 1611
活跃值: (1690)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
jiyuren 2023-10-10 09:24
2
0
厉害了老铁,指定收藏
雪    币: 1611
活跃值: (1690)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
jiyuren 2023-10-10 09:24
3
0
厉害了老铁,指定收藏
雪    币: 19410
活跃值: (29069)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
秋狝 2023-10-10 10:13
4
1
感谢分享
雪    币: 211
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
婲婲丗界 2023-10-10 17:39
5
0
大佬能私聊求一份写好的代码吗?谢谢大佬
雪    币: 2093
活跃值: (1820)
能力值: ( LV5,RANK:70 )
在线值:
发帖
回帖
粉丝
洪七公. 2023-10-10 18:05
6
1
感谢分享
雪    币: 1224
活跃值: (824)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
暮至夜寒 2023-10-10 19:54
7
0
婲婲丗界 大佬能私聊求一份写好的代码吗?谢谢大佬
很简单的,接口都阐述全了,就剩临门一脚
雪    币: 94
活跃值: (1482)
能力值: ( LV2,RANK:15 )
在线值:
发帖
回帖
粉丝
mb_wjynirwq 2023-10-10 20:41
8
0
婲婲丗界 大佬能私聊求一份写好的代码吗?谢谢大佬
+1
雪    币: 211
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
婲婲丗界 2023-10-11 09:13
9
0
暮至夜寒 很简单的,接口都阐述全了,就剩临门一脚[em_13]
大佬,里面的一些参数,我现在还没理解,没找到规则,比如多个演员的演唱会id如何匹配,然后那个token或者cookie我也没弄明白。我先研究后面在来麻烦大佬
雪    币: 510
活跃值: (3811)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
codeoooo 2023-10-11 17:28
10
0
666
雪    币: 1744
活跃值: (8728)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
你瞒我瞒 2023-10-12 10:06
11
0
66666666666
雪    币: 211
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
婲婲丗界 2023-10-17 13:22
12
0
暮至夜寒 很简单的,接口都阐述全了,就剩临门一脚[em_13]
这一脚有点难
雪    币: 211
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
婲婲丗界 2023-10-17 13:24
13
0

研究了好几天,就是没弄明白cookie如何生成的方法。你文章中的t是怎么生成的?我没看到文章中写,大佬麻烦回复一下把

最后于 2023-10-17 13:27 被婲婲丗界编辑 ,原因:
雪    币: 1224
活跃值: (824)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
暮至夜寒 2023-10-17 14:50
14
0
婲婲丗界 研究了好几天,就是没弄明白cookie如何生成的方法。你文章中的t是怎么生成的?我没看到文章中写,大佬麻烦回复一下把
文中说了t就是加密函数用到的c,就是当前时间戳,加密js里面调用加密函数时会传一个new Date().getTime(),因为时间戳比较简单,所以就没展示那个截图
雪    币: 211
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
婲婲丗界 2023-10-17 16:17
15
0
暮至夜寒 文中说了t就是加密函数用到的c,就是当前时间戳,加密js里面调用加密函数时会传一个new Date().getTime(),因为时间戳比较简单,所以就没展示那个截图
对于我个人cookie处理的代码有点难,能不能提供这部分的代码呢,大佬。
雪    币: 1224
活跃值: (824)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
暮至夜寒 2023-10-22 21:55
16
0
婲婲丗界 对于我个人cookie处理的代码有点难,能不能提供这部分的代码呢,大佬。
嗯嗯,更新帖子了
雪    币: 334
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
YINbo123 2023-10-23 09:02
17
0
感谢分享
雪    币: 1
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
UltraW 2023-10-25 16:20
18
0
请教下,对于请求cookie中的另2个参数cna和isg,isg在每次请求时也会动态变化,那么如何判断请求时可以不加这2个参数呢?
雪    币: 1224
活跃值: (824)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
暮至夜寒 2023-10-25 17:32
19
0
UltraW 请教下,对于请求cookie中的另2个参数cna和isg,isg在每次请求时也会动态变化,那么如何判断请求时可以不加这2个参数呢?
可以去掉那两个参数发起一次请求,请求成功的话那两个参数就不重要。而且那两个参数的过期时间是1年
雪    币: 1
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
UltraW 2023-10-27 13:24
20
0
暮至夜寒 可以去掉那两个参数发起一次请求,请求成功的话那两个参数就不重要。而且那两个参数的过期时间是1年
谢谢回复
雪    币: 718
活跃值: (1376)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
mb_uulqeyon 2023-10-29 12:41
21
0
婲婲丗界 对于我个人cookie处理的代码有点难,能不能提供这部分的代码呢,大佬。
token
首先发现多个函数都是格式化的,有this.option,n.token
然后往上翻,可以定位到
是请求 alibridge的getMtopToken产生的,再发现关键词_m_h5_tk ,就可以定位到。
雪    币: 718
活跃值: (1376)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
mb_uulqeyon 2023-10-29 12:42
22
0

111

最后于 2023-10-29 12:43 被mb_uulqeyon编辑 ,原因:
雪    币: 1
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
UltraW 2023-11-4 20:43
23
0
result里的['detailViewComponentMap']['item']['item']这个key今天看了下没有了
雪    币: 19410
活跃值: (29069)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
秋狝 2023-11-4 21:57
24
1
感谢分享
游客
登录 | 注册 方可回帖
返回