JS逆向 | 手把手教你某书网登陆思路解析

2021-10-11 11:19:57 浏览数 (1)

代码语言:javascript复制
网址:

aHR0cHM6Ly93ZW5zaHUuY291cnQuZ292LmNuL3dlYnNpdGUvd2Vuc2h1LzE4MTAxMENBUkhTNUJTM0MvaW5kZXguaHRtbD9vcGVuPWxvZ2lu

首先抓个包:

手机号密码随便输,点击登陆

此时form data 中可以获取到 username、password、appDomain、wenshu.court.gov.cn这四个信息,老规矩先全局搜一波

此处以password为例

从上往下按照123的顺序

1. jquery相关,跳过

2. 乱七八糟,跳过

3. Login.js,点击文件进入(因为是登陆,所以看login)

两处均可格式化

继续搜,现在有8处,在return处全部打上断点(其实就是45行)

参数已经提示了出来,很明显加密就在此处

但是但是但是,直接搜到没有任何帮助,跟栈才是需要训练的基本功

所以我们接下来按照跟栈的常规套路走一下

现在可以忘掉之前的步骤

还是这个链接,进入initiator面板查看堆栈信息,一眼可见submit和add

但是但是我们还是要从头操作,假装不知道

顺带可以看到整体分为两部分 login jq

(jq可以先不看,直接看不是jq的栈)

所以直接进send、再格式化代码、打上断点、点击登陆

在send函数处 a.data里面有我们需要的密文,那么a是哪里来的,a是上面传进来的

继续跟上层堆栈

根据浏览器默认提示,data依然是传入的,继续往上跟

此处c依然是被传入的,继续跟上层

。。。。。。

这里省略这些步骤,还是一样的去分析一下

直接跳到submit这里

在这个位置上已经处于提交请求前,也没有密文是被传入的,大概率就是明文加密的关键行

而且这段代码位置没有return这个字

鉴于作用域问题,在var n处重新下断并点击登陆

现在作用域就被断在了submit处,在post(519行)前,就是需要注意的

跟进o.exec进行查看,return处下断

继续跟进return 处的 a函数进行查看

跟进来之后,这个a函数发现无法跟进,其实还是作用域问题,那么第8行下断就可以跟进去了

刚才还提示第7行,现在变成了17行,继续跟进去(参数提示是username,需要再断一下变成password)

这样就好了,而且也提示第39行了,继续跟进

这就又回到了我们熟悉的45行

因为现在混淆代码越来越多,转码器使用的人也越来越多,代码不可读是常态,这种情况下经常搜不到,定位不到关键加密代码,跟栈就是唯一的基本功

接下来i.createObj 和i.encodePassword分别查看

i.createObj:

就是返回一个对象,对象中的password就是密码加密

i. encodePassword:

e就代表传入的密码明文

t就代表密钥

看见n.setPublicKey(t),不用说var n = new JSEncrypt,肯定new的是RSA算法

跟进去查看后随便翻翻就能看到

那当然就是RSA了,接下来可以断点分析分析,然后用py或者套js的标准加密库实现

或者也可以按照webpack的扣代码手法把代码cv出来。

小伙伴们,快快用实践一下吧!如果在学习过程中,有遇到任何问题,欢迎加我好友,我拉你进Python学习交流群共同探讨学习。

0 人点赞