寸阳分阴须爱惜,休负春色与时光。这篇文章主要讲述Python逆向之 eval 函数解析,看着一篇就会了,案例掌房相关的知识,希望能为你提供帮助。
@[toc]
?? 实战场景本篇博客要盘的目标站点是【掌房买好房】登录页加密逻辑,提前访问 http://eip.chanfine.com/login.jsp
做一下接口分析。
?
文章图片
随机写入一个账号和密码,测试加密接口。
- 账号:15012341234
- 密码:123456
- 请求网址: http://eip.chanfine.com/j_acegi_security_check
- 请求方法: POST
- j_username: 15012341234
- j_password: ?匠?N3IRFNdustKHXjJ5PDrZIQ==
- j_redirectto:
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 = https://www.songbingjia.com/android/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
痕迹。?
文章图片
既然已经找到代码源头,接下来就可以找一款在线解密工具,实施解析即可。
推荐阅读
- 聊聊Mybatis的数据源之工厂模式
- #yyds干货盘点# 解决剑指offer(翻转单词序列)
- 这篇SpringCloud GateWay 详解,你用的到
- #yyds干货盘点# leetcode算法题( 删除有序数组中的重复项)
- Nginx架构篇(16)Rewrite - 访问目录URL自动添加“/”
- 使用 select 切换协程
- 启封easy QF PDA帮助企业提升ERP的管理水平
- ACL权限
- GO要点新解