声明:本文仅限学习交流使用,禁止用于非法用途、商业活动等。否则后果自负。如有侵权,请告知删除,谢谢!本教程也没有专门针对某个网站而编写,单纯的技术研究
案例分析
目标案例: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进行加密后发现是完全行的通的,那么本期到这里就结束了!!!
拜拜!!!
效果展示
代码分析
备注:这个太简单了,代码就不分享了,主要是讲的是遇见这种问题的思路