某乐网加密参数接口逆向分析(脱敏版)

声明


本文章中所有内容仅供学习交流使用,不得用于其他任何目的,不提供完整代码,抓包内容、敏感网址、数据接口等均已做脱敏处理,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关。

若擅自使用本文讲解的技术而导致的任何意外,作者均不负责。文中若有侵权内容,请立即联系作者删除!

Ⅰ:目标


  1. 网址:aHR0cHM6Ly9kZW1vLmQuY24vYXV0aC9nb0xvZ2luLmh0bWw=
  2. 接口:aHR0cHM6Ly9kZW1vLmQuY24vYXV0aC9sb2dpbj9kaXNwbGF5PXdlYiZuYW1lPTEzNXh4eHh4eHh4JnB3ZD1iMjkyNzI4MTUyMGViLi4u
  3. 目标:请求参数 pwd reqId 【关于验证码的参数暂时不管】

Ⅱ:抓包分析


  1. 通过抓包分析查看,请求参数 pwd 和 reqId 是加密的,我们需要逆向分析出2个参数的加密逻辑,复刻其算法。在这里插入图片描述

  2. 首先想看 pwd 的算法,我们先查看调用栈是什么情况?我们可以看到前面3个看着是 jquery 库,但是我们不知道里面是否被魔改过?此时我们可以先判断没有魔改,就是原生的库,那我们在 goLogin.html 处打上断点,如果在此处的js文件中还没有加密完成,那么就有可能对 jquery 库魔改,这个时候我们再去分析。此时我们重新发送请求。在这里插入图片描述
    在这里插入图片描述

  3. 可以看到其中 submitData 变量中确实有我们的加密参数,那么我们就需要向上查找 submitData 在什么时候给 pwd reqId 赋值的。我们可以在此文件中搜索。在这里插入图片描述

  4. 此时发现 submitData 只有4处使用,但是可以发现 pwd 有2处赋值,但是它们都是由 rsaPwd 变量来的,所以此时我们需要查看rsaPwd 是如何赋值来的,我们需要进行搜索查找。在这里插入图片描述

  5. 通过查找分析只有 rsaPwd = rsa(passwordVal);这一句看着很像加密的过程,此时我们可以在此打上断点,重新发送请求。在这里插入图片描述在这里插入图片描述

  6. 观察得知,passwordVal 刚好就是我们输入的密码明文,我们在控制台调用 rsa 函数也确实得到了我们的之前加密的密文,那么就肯定 rsa就是 pwd 的加密函数,此时我么就要分析 rsa 函数的逻辑,直接进入该函数,并打上断点并释放断点。在这里插入图片描述

  7. 我们很清楚的看到,代码注释也写了是密码的加密,那就没问题,现在最主要就是看它的逻辑,通过代码的分析与经验可以知道,他是一套很古老的 rsa 加密算法,可以参考 https://ohdave.com/rsa/ ,他需要 RSA.js require BigInt.js and Barrett.js. ,我们直接把这个3个js文件放在一起一个js文件,但是外部要使用其中的方法,要导出需要使用的方法,我是这样写的,如图。在这里插入图片描述

  8. 接着我们就需要复刻加密的js的代码,并且验证。在这里插入图片描述

  9. 通过验证发现,加密算法无误,到此 pwd 的加密算法就搞定了,接着就看 reqId 的算法。

  10. 既然 pwd 是在该js文件生成,那么reqId是不是也在该文件有所表现,我们可以直接搜索 reqId 被赋值的地方。【小技巧:对于我们把js代码格式化后,那么赋值可能就会存在这样的格式 reqId :xxx 或者 reqId = xxx】 在这里插入图片描述
    在这里插入图片描述

  11. 我们可以看到可以看到有2处都有可能生成为 reqId 赋值,他们都是调用 getData3 方法返回的结果取出 reqId 赋值,我们可以在2处打上断点,要想执行到 getData3 方法,可以刷新网页或者登录状态不为9999,此时,我们通过刷新网页来实现,上面代码分析可以知道,当用户名存在,并且鼠标在密码框聚焦时则会触发 getData3 方法。在这里插入图片描述

  12. 我们直接进入 getData3 方法内,可以看到他 ajax 是发送了另一个请求获取 reqId 的。在这里插入图片描述

  13. 到此,我们本次的对 pwd reqId 的算法就分析完毕。当然还可以根据xh断点、关键字搜索等等方法去分析。

Ⅲ:总结


本次的调试过程还算是简单的,主要是这个古老的RSA算法,大家可以记住他的特点,之后就可以直接使用。对于其他的值,我们不一定非要觉得它就是加密的,有可能就是前面的接口返回的。需要具体调试,公众号【逆向学习日记】回复【某乐网】获取地址。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值