【Tips】JS 逆向—某登录界面RSA加密算法

admin 2023年7月22日00:42:23评论103 views字数 1085阅读3分37秒阅读模式
【Tips】JS 逆向—某登录界面RSA加密算法

Tips +1

【Tips】JS 逆向—某登录界面RSA加密算法

RSA算法介绍

RSA加密算法是一种可逆的非对称加密算法,即RSA加密时候用的密钥(公钥)和RSA解密时用的密钥(私钥)不是同一把。基本原理是将两个很大的质数相乘很容易得到乘积,但是该乘积分解质因数却很困难。RSA算法被广泛的用于加密解密和RSA签名/验证等领域。

文章链接:https://try8.cn/tool/cipher/rsa

JS 逆向RSA 加密实例

1、找关键字段

打开chrome开发者工具,发送请求可以看到密码进行了加密,字段为pwd。

【Tips】JS 逆向—某登录界面RSA加密算法

2、通过pwd 字段,找加密函数

CTRL+shift+f 输入pwd全局找加密函数,可以在loginbypassword2023.js找到encryptedString加密函数

【Tips】JS 逆向—某登录界面RSA加密算法

控制台打印确认为加密函数

【Tips】JS 逆向—某登录界面RSA加密算法

3、加断点,逆向参数

加入断点之后,可以看到账号密码显示出来了,说明断点的地方对了。

【Tips】JS 逆向—某登录界面RSA加密算法

上面可以看到一个是传入的账号密码password,另一个key_to_encode,那么还需要跟入它调用的函数

【Tips】JS 逆向—某登录界面RSA加密算法

把鼠标放到该位置上可以看到使用了RSAKeyPair 函数,接下全局搜索该函数,可以发现私钥和公钥

【Tips】JS 逆向—某登录界面RSA加密算法

通过函数找到加密的js文件RSA.min.js把该文件保存到本地(RSA.js),后续用来加密。

【Tips】JS 逆向—某登录界面RSA加密算法

【Tips】JS 逆向—某登录界面RSA加密算法

4、编写加密脚本

写一个getEncryptedPassword方法,把加密函数encryptedString和需要用到的参数添加到RSA.js 文件里面

【Tips】JS 逆向—某登录界面RSA加密算法

最后使用execjs 去调用getEncryptedPassword方法,执行脚本获取加密后字段。

import execjs
file = open('RSA.js', 'r')aaa = file.read()js = execjs.compile(aaa)res = js.call('getEncryptedPassword', '123123')print(res)

【Tips】JS 逆向—某登录界面RSA加密算法

5、最后就可以写个脚本去爆破了或者使用burpcrypto插件辅助进行爆破。

【Tips】JS 逆向—某登录界面RSA加密算法

【Tips】JS 逆向—某登录界面RSA加密算法

通过密文看明文

【Tips】JS 逆向—某登录界面RSA加密算法

【Tips】JS 逆向—某登录界面RSA加密算法

关于 execjs

execjs是Python的一个库,它可以用来执行JavaScript代码。它的使用非常简单,只需要传入一个JavaScript脚本和需要执行的函数名就可以了。execjs适用于使用JS编写的一些算法,或者使用JS实现的网站的信息抓取。

安装execjs:pip3 install PyExecJS

execjs使用示例

下面提供两个execjs使用的示例,在这里我们将用到两个JS脚本

【Tips】JS 逆向—某登录界面RSA加密算法

使用execjs 进行MD5加密

【Tips】JS 逆向—某登录界面RSA加密算法

End

“点赞、在看与分享都是莫大的支持”

原文始发于微信公众号(贝雷帽SEC):【Tips】JS 逆向—某登录界面RSA加密算法

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2023年7月22日00:42:23
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   【Tips】JS 逆向—某登录界面RSA加密算法http://cn-sec.com/archives/1898403.html

发表评论

匿名网友 填写信息