JS逆向-58同城密码加密分析

目标网站:

1
2
3
aHR0cHM6Ly9wYXNzcG9ydC41OC5jb20vbG9naW4vP3BhdGg
9aHR0cHMlM0EvL2Z6LjU4LmNvbS8mUEdUSUQ9MGQxMDAwMDAtMDAx
My0wMjk0LTFjZWItYjU3NTBiZDIwNmU5JkNsaWNrSUQ9Mg==

抓包分析与加密定位

老规矩先抓包看看【图1-1】

图1-1

今天主要分析的是划线的三个参数,先一个一个来研究一下。

先看看密码的加密,按照之前的思路我们测试了password的相关搜索项,但是搜索出来的结果都不尽如人意。【图1-2】

同时这个请求也不是XHR请求,所以xhr断点也用不上了。

图1-2

搜索的结果中比较有相关性的是【图1-2】标注的部分,但是在文件的搜索项里搜索password是找不到加密位置的。

我简单总结了几种办法,虽然并不一定适用于其他网站的加密,算是提供一种新的思路。

第一、搜索相关的的提示语,就像在之前的我做的第一个 APP 逆向的项目中,我就是搜索相关的提示语找到了扣费逻辑的代码,这里也可以按照这样的思路。

在这个网站的加密里点击登陆,点击后按钮变为登录中...,搜索相关提示语再逐步打断点一直追下去是可以找到加密位置的,不过这是个下下策,耗时太长,很容易追丢了,为了这个不值当。(不推荐使用)

第二、参考开头的搜索关键字的方法,这里搜索的是encrypt,经常遇到加密的变量或方法是encrypt(XX)这样的形式。

第三、试试从网页中找找答案,之前做过一些简单的例子是将 js 的代码直接写到页面中自执行或者采用隐藏域传递值的方式,比如:像PublicKey这类比较有特色的值,如果能找到对我们的帮助是很大的。

按照上面总结的几种方法,我们再次搜索【图1-3】

图1-3

又搜索到这个熟悉的文件,这次我们进去搜索一次,这次找到了好多类似加密的地方,为了省事我把所有相关的值都打上了断点,再次登录。【图1-4】

图1-4

到这里就定位到加密的地方了。

继续追进去可以看到进入的是一个VM【图1-5】

图1-5

到这里就没有什么难度了,密码的加密就是 RSA + eval

如果你很幸运先找到了eval加密的地方,但是不知道怎么解决,可以参考之前一篇关于js混淆的文章。

—-> 点我看文章

或者直接打开浏览器的开发者工具切换到console选项卡,把相关的eval代码粘贴进去,将代码开头的eval替换为console.log,就可以得到原来的代码了。【图1-6】

图1-6

接下来看的是两个指纹相关的参数,这里就比较简单了,直接搜索fingerprint就可以找到相关加密文件,直接在里面打断点就可以了。【图1-7】

这里的注意点是想要重新生成指纹,记得要刷新页面才可以。

关于指纹的加密生成讲的比较简单,需要学习案例的朋友可以访问下面的网址。

https://lengyue.me/

也可以看看冷月打来之前的关于某个网站指纹加密的视频教程。

链接 : https://pan.baidu.com/s/1Y8pcacZbHF1DXW0znzmZKQ 密码:vkmf

失效请留言。

EOF

煌金 wechat
扫描关注公众号,回复「1024」获取为你准备的特别推送~