android浏览器获取设备id,JS逆向:分析12306设备码RAIL_DEVICEID

本文详细介绍了如何通过JavaScript逆向分析12306网站的RAIL_DEVICEID生成过程,涉及到Chrome浏览器的调试工具使用、请求参数的追踪、加密算法的初步理解,以及同步调用流程的梳理。RAIL_OkLJUJ被指出可能是设备的唯一标识,并在不同请求中起到关键作用。通过调试和代码复现,作者揭示了12306如何从浏览器信息中生成这两个重要的设备码。
摘要由CSDN通过智能技术生成

前言

最近学Android逆向学到so层了,汇编真的是看的脑壳疼。感觉也好久没做js逆向了,基本上就是大的做不来,小的太简单。。想起之前听人提到过12306的设备码,就打开网站找了找,也算是巩固一下JS调试方面的知识。

RAIL_DEVICEID是12306网站Cookie中的重要部分,也是用户进行操作的重要凭证,包括了一系列的浏览器信息及验证等。开发者为应对不同浏览器的差异,在Cookies、Web SQL、evercookie、session、localStorage中都存储了REIL_DEVICEID。今天我们就来分析下这个参数的生成过程。

其实12306除了RAIL_DEVICEID以外,还有RAIL_OkLJUJ,也是cookie中的重要内容,并且在不更新浏览器以及电脑环境配置的情况下,其值不会改变。换句话说,这个RAIL_OkLJUJ才是唯一标识设备的信息。个人认为RAIL_OkLJUJ的优先级是要比RAIL_DEVICEID高的,当然,进行用户操作的时候哪个是决定性的参数不是我们今天的重点,买票时信息的加密等到以后有机会再看吧。

逆向分析过程

首先用chrome浏览器打开12306,打开F12开发者工具,多次刷新页面,然后查找Application中的cookie,拿到RAIL_DEVICEID:

9bbacf9f3ab9

图1 查看cookie

切换到Network,搜索cookie,你会惊奇的发现。。

9bbacf9f3ab9

图2 搜索Network

除了图片和一些JS的加载,什么都没有,这串代码也只是作为cookie与服务器交互。那是当然的啦,因为我之前打开过12306,本地cookie已经有DEVICEID的信息,不需要向服务器重新请求,此时需要清空网页的Cookie。

9bbacf9f3ab9

图3 清除cookie

9bbacf9f3ab9

图4 清除cookie

点击清除,全部删掉。然后重新刷新网页,再重复上一步的步骤:Application拿DEVICEID,复制网络请求搜索后:

9bbacf9f3ab9

图5 搜索DEVICEID

可以看到这个请求,我们需要的DEVICEID就在这个请求的响应结果中,也就是DEVICEID通过请求返回了一个jsonp,前端JS再把deviceid解析出来赋值到cookie中:

9bbacf9f3ab9

图6 查看response

9bbacf9f3ab9

图7 查看请求参数

看下参数,有很多,不太方便看,把所有参数复制出来。开启一个无痕模式的浏览器,打开12306抓这个请求,再把参数复制出来,把两个请求的参数对比一下。

9bbacf9f3ab9

图8 请求参数对比

一样的参数我们可以先不管,把注意点关注在不同的参数上。timestamp是时间戳,也不看。那么有algID、hashCode、VySQ,看似是三个加密参数。再对比响应内容:

9bbacf9f3ab9

图9 格式化响应结果

9bbacf9f3ab9

图10 响应对比

好像发现了点什么。这个cookieCode和VySQ是

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值