写点什么

Python 逆向之 eval 函数解析,看着一篇就会了,案例掌房

作者:梦想橡皮擦
  • 2022 年 8 月 08 日
  • 本文字数:866 字

    阅读完需:约 3 分钟

⛳️ 实战场景

本篇博客要盘的目标站点是【掌房买好房】登录页加密逻辑,提前访问 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 = 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 痕迹。



既然已经找到代码源头,接下来就可以找一款在线解密工具,实施解析即可。


📢📢📢📢📢📢💗 你正在阅读 【梦想橡皮擦】 的博客👍 阅读完毕,可以点点小手赞一下🌻 发现错误,直接评论区中指正吧📆 橡皮擦的第 <font color=red>685</font> 篇原创博客



发布于: 刚刚阅读数: 2
用户头像

爬虫 100 例作者,蓝桥签约作者,博客专家 2021.02.06 加入

6 年产品经理+教学经验,3 年互联网项目管理经验; 互联网资深爱好者; 沉迷各种技术无法自拔,导致年龄被困在 25 岁; CSDN 爬虫 100 例作者。 个人公众号“梦想橡皮擦”。

评论

发布
暂无评论
Python逆向之 eval 函数解析,看着一篇就会了,案例掌房_Python_梦想橡皮擦_InfoQ写作社区