前言
该文章为学习使用,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关!如有侵权,请私信联系作者删除~
需求
模拟登录
目标网站:aHR0cHM6Ly93d3cueW91c2hpeXVuLmNvbS5jbi9sb2dpbi9pbmRleA==
正文
抓包分析可以看到密码是加密了的。用XHR断点找一下加密位置
找到LoginByUsername这个栈堆,可以看到: Object(_[“g”])()密文是由这个方法生成的
Object(_[“g”])({
data: e,
key: “password.yunjy.y”,
param: [“password”]
})
进入方法我们可以找到加密函数
看i.a这个算法包,可以看到里面有很多加密算法,可以判断是标准的加密算法。AES加密,mode为CBC,填充方式为ZeroPadding
最后用JS还原:
const CryptoJS = require('crypto-js')var password = 'asdasd',r = 'password.yunjy.y'var e = password;r = CryptoJS.enc.Latin1.parse(r);var n = r, a = CryptoJS.AES.encrypt(e, r, {iv: n,mode: CryptoJS.mode.CBC,padding: CryptoJS.pad.ZeroPadding});password = a.toString()console.log(password);
最后
欢迎联系作者交流更多