前言
该文章为学习使用,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关!如有侵权,请私信联系作者删除~
需求
模拟登录
目标网站:aHR0cHM6Ly9icWNtMC5jYXZpcDEuY29tLw==
正文
抓包,进入login
在data设置断点
data: utils.desEncrypt(JSON.stringify(a), i)
a = {
“username”: “sadasdsad”,
“password”: “asdasdasd”,
“captcha”: “”
} a是我们的明文信息
i = ‘AH04uz0v5eTEBSUX’
var i = utils.rndString()
i是一个随机值,可以写死
进入到加密算法,可以看到是一个标准的DES加密,ECB模式,Pkcs7填充模式
如何判断是标准算法:看算法包 如果里面有很多算法模块 那99.9%属于标准的算法库
用JS还原
const CryptoJS = require('crypto-js')
function rndString() {
for (var e = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXTZabcdefghiklmnopqrstuvwxyz", t = "", n = 0; n < 16; n++) {
var a = Math.floor(Math.random() * e.length);
t += e.substring(a, a + 1)
}
return t
}
function desEncrypt(e, t) {
var n = CryptoJS.enc.Utf8.parse(t);
return CryptoJS.DES.encrypt(e, n, {
mode: CryptoJS.mode.ECB,
padding: CryptoJS.pad.Pkcs7
}).toString()
}
var a = {
"username": "sadasdsad",
"password": "asdasdasd",
"captcha": ""
}
i = rndString()
data = desEncrypt(JSON.stringify(a), i)
console.log(data)
最后
欢迎联系作者交流更多