声明:本文只作学习研究,禁止用于非法用途,否则后果自负,如果侵权到了您的权益,请立即联系我删除!
目标网站:aHR0cHM6Ly9iai5mYW5nLmNvbS8=
本次逆向的目标为登录时的加密参数pwd ,如下所示。  全局搜索pwd: ,发现2个比较可疑的位置:  点进文件对应位置下断点,再重新登录一次,在这里断住了。  that.password.val() 就是我们输入的密码明文,那key_to_encode 是什么呢?  显然,key_to_encode 是RSA 密钥,但在当前文件并没有搜到,全局搜索一下试试。  在这里找到了定义key_to_encode 的位置,在这之前还进行了个setMaxDigits(129) 操作,现在还不知道它的作用是什么,先点进去看一下。  setMaxDigits 只是进行一些定义操作,把这段代码复制到本地运行,然后会报错,根据报错提示补上对应的变量或者方法就行了。
解决了setMaxDigits 的问题,然后再把定义key_to_encode 的方法RSAKeyPair 扣下来,运行得到的结果如下:  到此我们就拿到了RSA 的密钥,再将encryptedString 方法扣下来,就能实现pwd 参数的加密方法。  最后用python 模拟登陆试试。  返回Success ,说明参数加密是对的。
需要注意的是,每次加密的结果都是不一样的,如果加密完的值不变,说明扣错了。 另外登录得用实际的账号密码去登录,不然无法验证参数加密是否是正确的。
|