网址:aHR0cHM6Ly9wYXNzcG9ydDIuY2hhb3hpbmcuY29tL2xvZ2lu
登陆页面输入账号和密码,打开开发者工具,找到登录包
发现账号与密码都进行了加密,采用跟栈方法,点击第一个栈,打上断点,在进行登录。
发现电话与密码已经进行了加密,因此往上跟栈。
在这个栈,发现了老朋友$.ajax,它是发送表单等数据,加密就在上方。
加密位置打上断点,进入encryptByAES函数
函数为
其中CryptoJS是标准库
因此加密代码为:
const CryptoJS = require('crypto-js');
function encryptByAES(message, key){
let CBCOptions = {
iv: CryptoJS.enc.Utf8.parse(key),
mode:CryptoJS.mode.CBC,
padding: CryptoJS.pad.Pkcs7
};
let aeskey = CryptoJS.enc.Utf8.parse(key);
let secretData = CryptoJS.enc.Utf8.parse(message);
let encrypted = CryptoJS.AES.encrypt(
secretData,
aeskey,
CBCOptions
);
return CryptoJS.enc.Base64.stringify(encrypted.ciphertext);
};
var transferKey = "u2oh6Vu^HWe4_AES";
var pwd='123456';
var phone = '18720180853';
pwd = encryptByAES(pwd, transferKey);
phone = encryptByAES(phone, transferKey);
console.log(pwd,phone)
结果展现:
与真实值一样,加密完成。