Tips +1
RSA算法介绍
RSA加密算法是一种可逆的非对称加密算法,即RSA加密时候用的密钥(公钥)和RSA解密时用的密钥(私钥)不是同一把。基本原理是将两个很大的质数相乘很容易得到乘积,但是该乘积分解质因数却很困难。RSA算法被广泛的用于加密解密和RSA签名/验证等领域。
文章链接:
https:
/
/try8.cn/tool
/cipher/rsa
JS 逆向RSA 加密实例
1、找关键字段
打开chrome开发者工具,发送请求可以看到密码进行了加密,字段为pwd。
2、通过pwd 字段,找加密函数
CTRL+shift+f 输入pwd全局找加密函数,可以在loginbypassword2023.js找到encryptedString加密函数
控制台打印确认为加密函数
3、加断点,逆向参数
加入断点之后,可以看到账号密码显示出来了,说明断点的地方对了。
上面可以看到一个是传入的账号密码password,另一个key_to_encode,那么还需要跟入它调用的函数
把鼠标放到该位置上可以看到使用了RSAKeyPair 函数,接下全局搜索该函数,可以发现私钥和公钥
通过函数找到加密的js文件RSA.min.js把该文件保存到本地(RSA.js),后续用来加密。
4、编写加密脚本
写一个getEncryptedPassword方法,把加密函数encryptedString和需要用到的参数添加到RSA.js 文件里面
最后使用execjs 去调用getEncryptedPassword方法,执行脚本获取加密后字段。
import execjs
file = open('RSA.js', 'r')
aaa = file.read()
js = execjs.compile(aaa)
res = js.call('getEncryptedPassword', '123123')
print(res)
5、最后就可以写个脚本去爆破了或者使用burpcrypto插件辅助进行爆破。
通过密文看明文
关于 execjs
execjs是Python的一个库,它可以用来执行JavaScript代码。它的使用非常简单,只需要传入一个JavaScript脚本和需要执行的函数名就可以了。execjs适用于使用JS编写的一些算法,或者使用JS实现的网站的信息抓取。
安装execjs:pip3 install PyExecJS
execjs使用示例
下面提供两个execjs使用的示例,在这里我们将用到两个JS脚本
使用execjs 进行MD5加密
End “点赞、在看与分享都是莫大的支持”
原文始发于微信公众号(贝雷帽SEC):【Tips】JS 逆向—某登录界面RSA加密算法
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论