首页 网络安全 安全学院 查看内容

记某次常规js前端逆向

2023-5-6 14:21 2926 0

摘要: 某次渗透测试过程中发现这样一个页面登录抓包时发现密码被加密了遇到密码加密怎么办?直接谷歌打断点逆向啊F12 全文搜索password字段找到加密点 继续下去搜索encryptedPassword开启打断点对194行和203打断点接下来进 ...
关键词: 加密 这里 RSAUtils 断点 encryptedPasswor 密文 split 继续 调式 文件

某次渗透测试过程中发现这样一个页面

登录抓包时发现密码被加密了

遇到密码加密怎么办?直接谷歌打断点逆向啊

F12 全文搜索password字段

找到加密点 继续下去

搜索encryptedPassword

开启打断点

对194行和203打断点接下来进行调式

继续

成功得到加密后的密文 接下来就是如何批量生成

这里我们利用execjs模块

pip install pyexecjs
pyexecjs可以执行js文件 当然nodejs也行主要这里是用来批量加密

案列:

这里定义一个s.js文件

function f(x,y) {    return x+y}

python调用s.js

import execjswith open('s.js', 'r', encoding='utf-8') as f:  #代码意思为打开s.js文件    jstext = f.read()ctx = execjs.compile(jstext)  #加载jsx=1y=2result = ctx.call('f',x,y) #调用js里面的函数print(result)

接下来就是利用python加密

这里的key在之前返回包中有我们直接导进去

function encryptedPassword(password){    //老的加密算法有问题,使用新的实现方法     var key = '10001&94dd2a8675fb779e6b9f7103698634cd400f27a154afa67af6166a43fc26417222a79506d34cacc7641946abda1785b7acf9910ad6a0978c91ec84d40b71d2891379af19ffb333e7517e390bd26ac312fe940c340466b4a5d4af1d65c3b5944078f96a1a51a5a53e4bc302818b7c9f63c4a1b07bd7d874cef1c3d4b2f5eb7871'    var split = key.split("&");    var publicKeyExponent = split[0];    var publicKeyModulus =split[1];     RSAUtils.setMaxDigits(200);     var key = new RSAUtils.getKeyPair(publicKeyExponent, "", publicKeyModulus);      var passwordEncry = RSAUtils.encryptedString(key,password.split("").reverse().join(""));//这里要对字符串进行反转,否则解密的密码是反的     return passwordEncry;}

nodejs调式下

我们看到 RSAUtils未定义

继续上F12搜索RSAUtils

直接将代码抄下来

这里需要注意一个点 我们需要把encryptedPassword函数放在里面

去除$w和})(window);后继续debug下

这里oK

对比下之前浏览器后的密文

OJBK 没有任何问题

最后写入文件

from https://xz.aliyun.com/t/12460

本文出处: https://www.toutiao.com/article/7229158088472166949/
声明:文章版权归原作者所有 部分文章转自互联网 如有侵权请联系 [邮箱地址] 删除

路过

雷人

握手

鲜花

鸡蛋

最新评论

返回顶部