Rakuten Insight登录加密算法-密码RSA算法与CRES算法

提要

最近研究了一下Rakuten Insight的登录协议,经过1小时的折腾,终于摸清了这货的加密方式

1.首先分析一下请求,初步分析,登录请求中的cid、cpid、cres、password、username为动态参数。

 

2.从上至下,首先是cid,翻一翻历史请求不难发现cid是通过https://challenger.api.global.rakuten.com/v1.0/c请求获取的。

3.c请求数据中都是固定值,不需要特殊处理,pid在主页面里能够查询(固定不影响结果)。

4.cpid与c请求中pid值相同,一定要做动态,就先取一下“https://www.aipsurveyschina.com/sign-in?redirect=/home,取出cpidForOtherPages":"b23a4feb-11ef-43df-86b8-5f8e4f3f20bb"的源代码,取出 cpidForOtherPages":"和",的中间值即可

5.接下来是cres,经过一番查找,发现并没有固定值,看来是动态值了,开始js搜索大法,定位到可疑代码

6.下个断点刷新页面跟一下,分析一下数据和函数:

7.首先看到,cres的计算是基于mdata这个字符串来进行的,去历史请求中翻一下,果然是获取的,地址为:https://challenger.api.global.rakuten.com/v1.0/m?cid=eyJhbGciOiJBMjU2S1ciLCJlbmMiOiJBMjU2R0NNIn0.Ip9hWqhSExPkliOSXjBPLVHINOPC9cuAKbQ9LhPNk62F68hmaHilyQ.-wqivlk2cZNv4v1f.ZsS_7O_rsS1hEEe_YQ71EukRyYrsFp4ZpXYdseB5QupAZEE0SerqdNRAm-xXQEWGGokwDzy5fmU2zTAFbd39jhBaWYnL3JDV7UTOkXFB0WJ9CnnUDjcZvqshpfYH1WKCjQ5Vf3GBiBVnvs9_OeZ_D4V3TKjBY8nZjPEh2N6z2bgjQeZ7w_MPipmj7ddRHE89g8XPDwyoQEmCKwwaXTaKiqm7hVptH3YtQA_eo6fg9gItutn_JvUiCTif2ph7mYJchFD73KiKVzxVMYqVRxaxYCGWuSl4zH0ciE93Frrm8dtDWkEnby1cEkJCFsPoJXiCHBoTuBES7qliXM2vLcd8SFL-FF8_GN3O.gCrNFOHAkRV1H0HD8XJKTw&mtype=0

8.其中cid我们在之前已经获取过了,直接复用就好

9.根据js代码,我们接下来只需要复写solvePow这个函数,就可以得到我们要的结果了

10.username很明显是用户名,这个是明文,就不做分析了,而password很明显是经过加密的,请出搜索大法

11.password结果太多,转换思路,使用“username”找到了相关代码

12.断点跟踪,发现是rsa加密,那么我们找具体的参数和密钥,怎么分析出来的?右转javascript从入门到跑路

13.单步追踪,密钥get

14.至此,所有参数都拿到了,padding是RSA_OKCS1_OAEP_PADDING,oaepHash为sha256,接下来我们用工具模拟加密验证一下

15.测试无误

版权声明:
作者:hosea
链接:http://52yima.top/?p=163
来源:吾爱亿码博客 -见证科技变迁
文章版权归作者所有,未经允许请勿转载。

THE END
分享
二维码
< <上一篇
下一篇>>