JS逆向解密秀动app(网页接口)实现抢票python版本【二期-继秀动接口更新】

目录

1.写在前面

2.逆向之旅开始

2.1 分析接口,抓包----挑战1:破解gettoken接口


1.写在前面

        因秀动接口更新之后,后台频繁收到私信,于是趁有空的时候逆向了秀动抢票接口,发现改动还是挺大的,于是就在闲暇时间进行了“二度”逆向秀动。

       声明: 本人一直提倡开源,绝不以牟利为目的,也绝不会参与商务合作。

        不管你是小白还是大神,我希望大家都能热爱技术,一起学习逆向,互相进步,希望本文对你有所帮助和启发。

       (python版已在上个月就已完成,最近有时间把博客完善下,后期会用GO重构!GO语言yyds!)

2.逆向之旅开始

2.1 分析接口,抓包----挑战1:破解gettoken接口

本次就拿下图所示的案例进行分析

        我们可以看到,在之前我写过的一期中抢票接口无非就是三大请求,然而本次抓包却发现多了一个gettoken 这个接口,看来秀动程序员看到一期分析后汗流浃背了,但是不怕,我们依然有解决办法。

        进入分析,我们可以看到该请求返回给我们的参数有两个:1.accesstoken  2.id_token

请求的参数有1.sign 2.st_flpv

我就不卖关子,我直接告诉你们这两个请求参数是什么吧:

       重点1: sign是我们的登录信息,那么st_flpv怎么生成的呢?好戏刚刚开始。

开始搜索加密位置(保姆级教程)

        找到了其加密位置,我们把加密位置扣下来吧!(代码的意思已注释,方便小白)

  var v = p.default.uuid(32) + (new Date).getTime();//该代码的意思是生成32位的uuid数值加上当前时间戳 
  n.header["CRTRACEID"] = v;   //这里是关键,他竟然把这个参数加到headers中了

        从以上我们得到如下信息:我们的st_flpv参数的来源,以及其会放进请求头。(提示:这里的st_flpv加密和一起的ranstr加密一致!!!!!没反应过来的肯定是没认真看我上期!!!!)

        好,那么我们知道了其请求的data和一些必要参数那么开始写请求啦!

首先生成st_flpv,(我已经封装了js了,不要感到奇怪)

加入请求头

还差个sign,来我教你怎么快速获取sign(通过登录接口太浪费时间啦!直接看缓存)

好的,万事具备,只差请求!(省去了一些加密,因平台限制!!!)

看看返回的结果:

好了,到这里变化最大的gettoken接口已经成功拿下!相信大家最难的就是这个接口了。希望对你有所启发!

2.2 分析接口,抓包----挑战2:破解confirm接口

        查看请求包:

 

请求的参数有:
 

sequence: "216989"         #你所购买的票种id
sign: "634c30c1a06de59a9f721b31dfca63b4"  #你的登录信息
st_flpv: "i0ns87j1o6vlehbf7oA8"           #加密生成的参数,前面有介绍
ticketId: "deffd6f3ee56440b2a0aad11a62e8ac9" #你所购买的票种ticketID
ticketNum: "1"  #票数
trackPath: ""

以上参数发送加密之后即可发送请求包

让我们看看最后的请求响应结果:

成功获取!!距离成功一大半了。

2.2 分析接口,抓包----挑战2:破解order,getorderresult接口

        看到请求参数,vocal,这么玩是吧?

        看来我们只能打断点加密

直接看加密位置encrypt

这一看就太熟悉了,就是我们在一期写的加密方式---经典AES,我把加密代码js帮你扣下来吧:

function AES_Encrypt(word,key) {
    var a = CryptoJS.enc.Base64
    var srcs = CryptoJS.enc.Utf8.parse(word);
    var new_key = CryptoJS.enc.Utf8.parse(key);
    var encrypted = CryptoJS.AES.encrypt(srcs, new_key, {
        mode: CryptoJS.mode.ECB,
        padding: CryptoJS.pad.Pkcs7
    });
    return a.stringify(encrypted.ciphertext)
}

好了,加密给你们了,下一步应该知道怎么操作了吧!直接发起请求:

看看效果:

3.声明

        1.本文在上个月写了一半,今天有时间把剩下的写完,之前答应一些粉丝说上个星期出,因上个星期实在没空,实在抱歉。

        2.本文所涉及的代码并非源码,仅提供思路,若在自己操作实践中出现任何问题,可和我联系。

        如果本篇文章对你有帮助,请给小编点个赞,编辑不易。后续会更新某岛,某麦网等逆向工程。你的支持是我更新的动力。希望大家能够学习到技术,多实践,互相学习,共同进步!

  • 31
    点赞
  • 43
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 10
    评论
JavaScript逆向是指通过分析JavaScript代码,从中提取出有用的信息,如代码逻辑、加密算法、参数等。Python可以作为一种工具,用来辅助进行JavaScript逆向。下面是一些常见的Python库和工具,可用于JavaScript逆向。 1. PyV8 PyV8是一个基于Google V8 JavaScript引擎的Python库,可以让Python代码执行JavaScript代码。使用PyV8可以方便地分析JavaScript代码的行为、逻辑和算法,也可以在Python环境下调试JavaScript代码。 2. Beautiful Soup Beautiful Soup是一个用于解析HTML和XML文档的Python库,可以方便地提取文档中的数据和信息。在JavaScript逆向中,可以使用Beautiful Soup来解析JavaScript代码中的HTML和XML元素。 3. Selenium Selenium是一个用于自动化浏览器操作的Python库,可以模拟用户在浏览器中的行为。在JavaScript逆向中,可以使用Selenium来模拟用户操作,如输入表单数据、点击按钮、滚动页面等。 4. PyCrypto PyCrypto是一个用于加密和解密数据的Python库,支持多种加密算法。在JavaScript逆向中,可以使用PyCrypto来解密JavaScript代码中的加密数据。 5. PyInstaller PyInstaller是一个可以将Python代码打包成单个可执行文件的工具。在JavaScript逆向中,可以使用PyInstaller将Python代码打包成一个可执行文件,方便在没有Python环境的计算机上运行。 6. Burp Suite Burp Suite是一个用于Web应用程序渗透测试的工具,可以拦截和修改HTTP请求和响应。在JavaScript逆向中,可以使用Burp Suite来拦截和修改JavaScript代码中的HTTP请求和响应,以便分析代码逻辑和算法。 总之,Python是一个功能强大的工具,可以辅助进行JavaScript逆向。通过使用Python库和工具,可以方便地分析JavaScript代码的行为、逻辑和算法,从而更好地理解JavaScript程序的运行方式和设计原理。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

NorthGo

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值