【JS逆向百例】东某航空数美指纹 v4 设备 ID 逆向分析

7xrWpJ.png

声明

本文章中所有内容仅供学习交流使用,不用于其他任何目的,不提供完整代码,抓包内容、敏感网址、数据接口等均已做脱敏处理,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关!

本文章未经许可禁止转载,禁止任何修改后二次传播,擅自使用本文讲解的技术而导致的任何意外,作者均不负责,若有侵权,请在公众号【K哥爬虫】联系作者立即删除!

逆向目标

目标:东某航空某数指纹 v4 设备 ID 逆向分析

网站:aHR0cHM6Ly93d3cuZG9uZ2hhaWFpci5jb20v

抓包分析

打开网站,找到返回机票信息的机票查询接口 flightSearch,分析发现两个加密参数需要分析:

7AJNrL.png

7AJqdJ.png

  • deviceId:设备 ID, 需要重点分析的参数,特征是,以 “B” 开头;
  • b2c-api-user-token:登录接口返回的,抓包可以发现,登录接口也会有设备 ID,同理。

搜索后发现,“B” 后面的内容,是由 v4 接口返回的,然后拼接上 “B” 得到的 deviceId

7AJwwG.png

7AJySB.png

  • organization:某数产品唯一标识;
  • data:加密参数需要分析;
  • ep:加密参数需要分析;
  • 其他:当前网站固定即可,由 compress encode 可知,其他网站的加密方式可能不同。

点开调用堆栈,都是由 fp.min.js 文件加载出来的,进入后,发现经过 ob 混淆了,不过通过搜索也能轻松定位到。我们直接搜索 compress 或者 encode,注意找与后面数字一致的地方,打下断点,有两处地方,重新刷新,最终定位到的位置如下:

7AJHit.png

ep

该参数由 _0x5223ab 大对象取值生成,搜索发现 _0x5223ab 对象是经过 _0x484fb9 函数进行赋值操作的:

7AJb7b.png

我们搜索 _0x484fb9 函数的赋值操作,即可定位到 ep 参数生成的位置:

7AJgVe.png

  • _0x1dbb2a,由上面的 getUid 函数生成,就是 uuid:

7AJhXP.png

  • _0x3f6bcc['publicKey'],通过全局搜索发现由 api.js 文件返回:

    7AJGmw.png

  • rsaEncrypt,经过测试,这里就是标准的 rsa 加密:

7AJxh6.png

data

_0x1d1d7a 生成,定位就在上面,通过 _0x99c3c2 函数生成,跟进去,返回的 _0x1498fb

7AJ5rO.png

两次赋值 tn,不过赋值在两个不同的对象中,只用分析下面的就行,下面的后面会用到,跟进 _0x28c88b

7AJWwf.png

扣下来即可,里面的 md5 摘要算法,经过测试也是标准的,继续往下走,跟进到 _0x8b10c3['default'] 函数中,传入了两个对象:

7AJcSc.png

通过一些条件进行筛选,满足条件的,取一个对象的值与第二个对象的 key,进行 DES 加密,然后添加到新的对象,不满足条件的直接添加到新的对象中去:

7AJvs3.png

然后进行 gzip 压缩,提示得相当清楚,我们可以直接引库:

// 导入pako库
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值