HI,上一期我出了js逆向解析五邑大学的AES加密实现模拟登录,后台不少人想让我去解析一下秀动app,去实现抢票。我看因此本文就是介绍如何去实现js逆向解析秀动网页端口实现抢票。
(本文拿最近的场:广州姜云升2022巡演)
一.逆向分析过程
首先,我们想要进入下单的页面也就是构造我们的下单url,我们只有构造好网页下单的url才可以进行网页下单操作:
图1
构造好的url如上图1所示,因此,我们进行下单页面的分析:
1.当我们购票时,我们先必须要登陆,你不登陆,系统怎么知道谁在买票,所以我们先要登陆
我的解决方案:(直接用cookie登录)这样方便快捷,但是你要先登录网站。避免抢票时候还要请求登录接口,或者读取你的curst登录信息文件。当然这里仅针对个人抢票。
2.我们登录之后,该做啥呢,那肯定是找到我们的票的信息。这里为什么要请求票品的接口,原因是:后面请求买票接口会涉及到参数。(提前透露一下:sessionid)
3.点击登录之后如何获取参数,我们知道当发起请求肯定要携带参数(post请求),这个不用多解释。
确定好语言:python+js(后续会用性能较好的go,R语言重构)
二.开始实战
实战一:构造url参数,下单页面
如果我们不会使用http请求的方式,在这里我教给小白一种方法去获取参数:sequence+ticketed:
好了,现在我把模板给大家,去构造url:
https://wap.showstart.com/pages/order/activity/confirm/confirm?sequence=&ticketId=
自己尝试着拼接吧!
实战二: 开始请求购买接口
根据上述的实战一,我们可以直接进入到下单页面,然后进行后续的页面分析:
为了方便演示(因为姜云升的已经被抢光了,所以不能够点击购买按钮,触发接口,因此我们换一个来进行抓包演示)
我选择了这个具有观演参数的票(小编之前因为这个有一次发现这个实名制的,出现了错误。)
实战二点一: 开始请求购买接口
我们先人工模拟点击立即支付按钮,看看抓到什么包
重点来了:看到没,加密的携带参数出来了,所以经过分析,我们知道:
秀动抢购主要有以下几点:
请求1.先进入到下单页面
请求2:请求支付1接口
请求3:请求支付2接口
实战三:js逆向及开始撸代码:
直接搜关键字: encrypt,为什么,因为他是js加密阿哈哈哈哈哈
看到了他的加密方式,开始打断点:
这不就出来了嘛,断点一打,加密必出。好了,至于js加密的内容,可以和我沟通(平台限制)
分析结束,开始撸代码:
1.js逆向,主要涉及两种加密:
经过个人分析:
data参数:AES加密
sign参数:md5加密
我将其进行js封装,在python中直接调用
直接使用原生加密状态,将其封装为一个函数,进行调用,最后得到加密结果。
最后进行python异步加载请求。
通过三次异步请求之后,我们可以发现其购票返回的数据:
这些都是抢票时候,我们会返回的数据,据此我们可以得到最终的结果:
好了,大功告成。
有任何问题可联系我,(以上代码及分析均为本人原创)