航空js逆向学习

声明:本文仅限学习交流使用,禁止用于非法用途、商业活动等。否则后果自负。如有侵权,请告知删除,谢谢!本教程也没有专门针对某个网站而编写,单纯的技术研究

案例分析

目标案例:aHR0cHM6Ly93d3cuY2VhaXIuY29tLw==

1.对应接口和难点
备注:航班搜索接口
在这里插入图片描述

参数分析

通过Application 中cookies删除了些cookie发现他校验的只有三个
acw_tc: set-cookie返回
HMF_CI:set-cookie返回
inter:如果这个值不变会请求不出来数据

我们进来可以看到,他先是请求了两次返回了两个cookie值
在这里插入图片描述
通过newCheckToken返回了inter
在这里插入图片描述
cookie到这里就结束了我们继续看

我们可以发现通过copy curl出来的代码跑不了,开始尝试了多次发现都跑不了,但是通过浏览器重试是可以的
在这里插入图片描述
通过request发送的请求是过不去的,开始很不理解
在这里插入图片描述
通过对翻页进行了抓包对比发现,这个值每次都在修改,我们可以看到它前半段是一直没变的,我们复制它再次去请求是又可以了
在这里插入图片描述
那么我们来看看他怎么生成的,这里可以看到他是用时间戳除以了1e9
在这里插入图片描述
那么我们对他进行修改
在这里插入图片描述
通过带上cookie返回的值发现是可以过的
在这里插入图片描述
但是我们发现提交的数据中并没有包含上海到北京这类数据,通过分析发现是referer,我们发现这个值就是上面提交的,但是searchKey值是有加密的
在这里插入图片描述
我们继续搜索发现他是在main.js文件中的
在这里插入图片描述
我们断点的时候发现打不上,我这边发现是拼接的路径,那么我们可以通过修改setting中的这个取消
在这里插入图片描述
通过sources对main.js进行下格式化,我们在下断点发现可以下上了,通过断点发现他是我们选择的城市和机票数据,通过编码进行转换在进行了base64,然后拼接了r
在这里插入图片描述
r值是在上面固定那么我们也可固定
在这里插入图片描述
我们继续执行发现shakehand这个值如果干掉是没有数据的,但是他一直是同样的,除了不同接口,那么我们还是需要看下,直接上搜索大法,发现他是a值拼接了链接的后半段
在这里插入图片描述
这里可以看到是对拼接的数据进行的md5,我们可以用在线进行尝试如果是原生的,可以直接python还原
在这里插入图片描述
通过在线发现是原生的,通过python调用,我把它写成了函数

def get_md5(data):
    md5 = hashlib.md5()
    md5.update(data.encode('utf-8'))
    return md5.hexdigest()

通过md5进行加密后发现是完全行的通的,那么本期到这里就结束了!!!
拜拜!!!
在这里插入图片描述

效果展示

在这里插入图片描述

代码分析

备注:这个太简单了,代码就不分享了,主要是讲的是遇见这种问题的思路

猜你喜欢

转载自blog.csdn.net/w62181310/article/details/131984288
今日推荐