本篇博客要盘的目标站点是【掌房买好房】登录页加密逻辑,提前访问 http://eip.chanfine.com/login.jsp
做一下接口分析。
随机写入一个账号和密码,测试加密接口。
通过开发者工具查看到接口参数如下所示。
其中加密位置呈现如下内容。
其中比较重要的就是 j_password
,我们要解析的位置也在这里。
直接全局搜索关键字 j_password
即可查询对应值。
直接定位到检索结果中的 desEncrypt
函数位置,得到下述内容。
鼠标移动到加密函数位置,发现出现 VM 相关内容,这里就可以初步猜测其使用的是 eval
函数加密。
直接跳转到对应代码部分,其实已经得到了相关逻辑,参考着下述代码编写 Python 代码就可以完成任务,但这与我们一开始学习 eval 逆向相违背。
function desEncrypt(value, xForm, type) {
if (_0(xForm)) {
return value;
} else {
var keyObj = {};
if (type == null || "aes" == type.toLowerCase()) {
keyObj = SECURITYKEY.get();
value = CryptoJS.AES.encrypt(value, CryptoJS.enc.Utf8.parse(keyObj.key), {
iv: CryptoJS.enc.Utf8.parse(keyObj.iv),
}).toString();
} else {
keyObj = SECURITYKEY.get("des");
value = CryptoJS.DES.encrypt(value, CryptoJS.enc.Hex.parse(keyObj.key), {
iv: CryptoJS.enc.Hex.parse(keyObj.iv),
});
}
return keyObj.security + value;
}
}
从上述代码提炼关键字 SECURITYKEY
,在全局代码再次检索。
结果中发现了加密函数真实位置,并且明显的 eval
痕迹。
既然已经找到代码源头,接下来就可以找一款在线解密工具,实施解析即可。
📢📢📢📢📢📢
💗 你正在阅读 【梦想橡皮擦】 的博客
👍 阅读完毕,可以点点小手赞一下
🌻 发现错误,直接评论区中指正吧
📆 橡皮擦的第 685 篇原创博客
从订购之日起,案例 5 年内保证更新