js逆向实战

最近遇到了很多加密问题,需要做js逆向,app逆向。
就简单写一个破解成功的js逆向案例吧
就我个人而言,不太喜欢写爬虫相关的实战方法,毕竟灰色地带。
首先声明,本文仅做技术交流,请不要用于商业用途。
如有侵犯,请联系删除。

一.定位问题

直入主题,我们首先发现这题在哪

看一下这段url
在这里插入图片描述

我们把params拿出来

jsv: 2.5.1
appKey: 12574478
t: 1588565848273
sign: 804fd2bd86b737702133e7d5f677de33
api: ***********************
v: 1.0
type: jsonp
dataType: jsonp
callback: mtopjsonp1
data: {"smAreaId":330100,"csaInfo":"0_0_0_0_0_0_0_0_0_0_0","csa":"0_0_0_0_0_0_0_0_0_0_0","logical":"HD"}

经过观察对比,发现他变化的参数主要是sign和t

很明显t就是13位时间戳,而sign是经过加密形成的

接下来我们需要找到加密算法并且实现

二.破解加密

先说一下简单思路,找到关键参数,打断点,找出执行流程,然后用自己的代码实现它
首先刷新页面,保证得到所有请求
在这里插入图片描述

1.唐伯虎点秋香

在这些返回数据中查找sign这个参数
经过查找,sign这个参数太多了,直接寻找效果并不是很理想,秋香的头上盖了红盖头,看脸不是那么好找的,但我们也能接受。
在这里插入图片描述

那我们想想其他办法,比如秋香的好姐妹在他旁边,我们先找他的姐妹。

2.顺藤摸瓜

我们可以先找他的兄弟参数,看了一下那些参数,data用的太多不适合,最有特点的藤蔓当然是appKey
在这里插入图片描述

通过查找appKey找到了这个,相似度已经很高了。

我们姑且相信她是真的秋香吧,当然后来验证这个是对的。
看到这里我们发现sign就是u
而u是通过p函数将几个参数处理得到的,那我们找到p函数,部分截图如下
在这里插入图片描述

将p函数处理一下,然后在idle中测试一下p到底做了什么
在这里插入图片描述

有点像md5啊,我们去验证一下
在这里插入图片描述

看结果是一样的,看来p函数其实就是一段md5加密的逻辑,那我们直接用md5替换它就可以了
到了这里基本上思路就差不多理清了
sign就是几个参数组成的字符串进行md5加密

3.饮水思源

接下来我们找到那些参数的源头就好了

主要是四个参数,o.token,a,s,n.data

断点打在这里看一下这些参数是何方神圣

然后我们经过对比发现,s是固定参数,a是时间戳,n.data就是url中的params的data

o.token两次请求都是一样,姑且算作固定参数吧

4.日久见人心

经过一段时间的测试,发现o.token这个参数终于变化了
另一方面cookie也会过期,变化的参数就只有两个m_h5_tk和m_h5_tk_enc。其他参数改一下并不影响请求
两条变化一起看,发现o.token就是_m_h5_tk这个参数的一部分
在这里插入图片描述
还是在这个文件中找到了,顺流而下,找到他做了什么
在这里插入图片描述
在这里插入图片描述
通过执行流程发现这段是异步写cookie参数的

找到失败的请求,发现他们返回了set-cookie
在这里插入图片描述
这样的话,前后轨道就接上了。

三.简单总结

大概流程:
1.sign通过四个参数MD5加密而成
2.o.token直接从cookie读取
3.过期时会有set-cookie,更新一下就可以了

==============================================
为了保护站点,我这里没有太过明显的提示,简单写了一下js逆向的部分手段
接下来准备写一篇博客记录一下app逆向的一个小demo,希望大家喜欢吧
抛砖引玉,也希望能够和大家交流更多的方法。

  • 13
    点赞
  • 39
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值