开始先登录正常输入

抓到这中文直译为’验证’的包,查看其formdata

formdata没有提交的验证码字段,不断更换验证码也没有新包出现,说明这个验证码是本地js生成的无关紧要

uName为明文的‘’登录手机号‘’,israndomPwd直译来猜测是随机密码,uPwd猜测为密码,那就先破解密码,全局搜索upwd,其中upwd:pwd,所以我们猜pwd是已经加密好的断点调试一下

function ValidatePwd(UType, Account, Pwd, RandomFlag) {var isRandomPwd = RandomFlag == "1" ? true : false;$.postJSON(webAppPath + "/pwd/validate", {"uName": Account,"uType": UType,"uPwd": Pwd,"isRandomPwd":isRandomPwd}, function (data) {if(data == null){showErrMsg('系统繁忙');return;}// rspCode=0000,表示密码符合规范if(data.rspCode == '0000'){hideErrMsg();return;}// rspCode=9114,表示密码为弱密码if(data.rspCode == '9114'){showErrMsg('密码过于简单,请通过“<a style="color: #ff8200" onclick="wjmmShow();">忘记密码</a>”进行重置。');return;}showErrMsg(data.desc);}, false);
};

知识点1 调用栈
我们看见此时pwd已经变成了3k开头的加密串,说明已经完成加密,那我们想看这上一步是如何生成的,就利用到了调用栈call stack,程序的执行顺序在栈是从下到上,那我们看最近的anonyous,点击即可

在这里我们看见密码明文了,下一个栈就是密文,说明就在其中,我们看到aesEncrypt就知道这是标准的加密库(速记:看到加密就cry了),那我们就单独在这里打断点,取消其他的断点(避免干扰)

程序停在这里了,我们进入


最上面就是我们要的函数,我们看下需要剥离多少,首先返回的是d,d是由e:密码明文生成的,c是由a生成的,a是由默认字符串生成的,那我们只需要先抠出这一个如下

# 抠出的代码
$.fn.aesEncrypt = function(e) {var a = CryptoJS.MD5("login.189.cn");var c = CryptoJS.enc.Utf8.parse(a);var b = CryptoJS.enc.Utf8.parse("1234567812345678");var d = CryptoJS.AES.encrypt(e, c, {iv: b});return d + ""
}
;
# 剥离函数名(仅修改第一行)
function aesEncrypt(e) {var a = CryptoJS.MD5("login.189.cn");var c = CryptoJS.enc.Utf8.parse(a);var b = CryptoJS.enc.Utf8.parse("1234567812345678");var d = CryptoJS.AES.encrypt(e, c, {iv: b});return d + ""
}
;

上函数又调用了CryptoJS库的.MD5等,那我们还需要这个库,可以直接python包自己生成,也可以剥离代码,此处我们剥离,点击调试进入函数(就是之前的下箭头)
调用部分:

此文件的开头部分:

那妥了呀整个文件,都是这个库,直接全部复制粘贴就好了,此处不贴源码了
一共复制这个aes.min.js:formatted整个文件+上面剥离的文件,加下面这一行验证代码

console.log(aesEncrypt('lsxy13145678'))

查看结果,二者一致

知识点总结

栈 :call stack
下箭头:进入函数
剥离代码
aes加密
加密库名称CryptoJS (遇到加密就cry了)

min:代表压缩

逆向教程2 某信营业厅相关推荐

  1. Js逆向教程19-websocket介绍

    Js逆向教程19-websocket介绍 作者:虚坏叔叔 博客:https://xuhss.com 早餐店不会开到晚上,想吃的人早就来了!

  2. Android逆向去掉某功能,逆向教程之-反编译apk完全精简删除菜单功能(二)

    本帖最后由 liuxiaoxin 于 2020-12-3 19:00 编辑 授人以鱼,不如授人以渔! 本教程图文并茂,步骤非常详细,偏小白向,大佬请自觉屏蔽. 使用工具:MT管理器免费版 被修改的软件 ...

  3. Js逆向教程17-极验滑块 实现加密算法的逻辑

    Js逆向教程17-极验滑块 实现加密算法的逻辑 还是和上节课一样,针对这个网址 https://www.geetest.com/demo/slide-float.html 一.加密算法的结果查看 计算 ...

  4. 学个锤子 | .Net零基础逆向教程 第三课(壳与作业)

    今天要讲的内容加入了"壳",在这里我推荐新手尽量使用脱壳机进行脱壳. 壳在这里读 ke,二声.晚上冒着生命危险在群里请教了一下,因原单词为 shell,所以 ke 的读法是正确的. ...

  5. Js逆向教程20-Hook基础

    Js逆向教程19-Hook基础 一.jshook Hook就是在这些流程任意环节插入自己的代码,让浏览器先执行自己的代码 然后再执行原本网站的 hook在以下流程中可以做的事情: 1.1 html流程 ...

  6. 通信原理教程樊昌信版第四章 模拟信号的数字化

    通信原理教程樊昌信版第四章 模拟信号的数字化 思维导图

  7. 逆向教程-2014.08版电信爱游戏支付分析

    最近几个月接触到Android软件逆向 原软件地址:http://www.play.cn/game/gamedetail/5010556.htm 工具:apk改之理 步骤: 1.首先反编译文件,本人下 ...

  8. 易语言64位端游内存封包逆向教程介绍---传奇4实战(易全网首套)

    易语言是否支持64位游戏内存或者注入呢?当然是支持的.下面内容教大家如何用易语言 写内存和封包辅助. 技术声明:本教程只能用于计算机技术研究,不做其他用途,如果有疑问,可以联系我. 复习位内存汇编基础 ...

  9. 大学计算机基础教程孔令信,数据模型

    数据模型(Data Model)是数据特征的抽象,它从抽象层次上描述了系统的静态特征.动态行为和约束条件,为数据库系统的信息表示与操作提供一个抽象的框架.数据模型所描述的内容有三部分,分别是数据结构. ...

最新文章

  1. (0099)iOS开发之Xcode编译工程报错问题汇总
  2. 四、华为鸿蒙HarmonyOS应用开发之Java开发下Page Ability生命周期
  3. 来电语音播报软件下载apk_消息语音播报app下载-消息语音播报安卓版 v1.0.1 - 安下载...
  4. 为什么微软要把数据中心设在水下?
  5. Win32 Console Application、Win32 Application、MFC三者之间的联系和区别
  6. Android系统中SD卡各文件夹名称功能详解
  7. 金蝶K3WISE盘点机PDA扫码入库仓库条码管理,外购入库单
  8. 全国人口年龄结构及抚养比(1987-2019年)
  9. S1200和博途软件通讯测试,S7-1200博途和组态王软件通讯(高端培训).pdf
  10. 鉴相器 matlab,MATLAB锁相环仿真程序求解
  11. SpringIOC控制反转之XML配置
  12. Kali Linux 安装VMware虚拟机和音乐播放器
  13. word里如何在□里打√!框框里打勾!!!!!
  14. redis之禁用保护模式以及修改监听IP
  15. input输入框 去掉外边框 解决方案
  16. 古剑飞仙手游Linux系统服务器架设教程
  17. 算法探索_多序列合并去重
  18. 导入EXCEL2007报错外部表不是预期的格式错误
  19. 基于Linux系统搭建智能DNS
  20. Date型日期格式转换

热门文章

  1. 手机壳鸿蒙,首批iPhone X今日到货 四款靠谱手机壳推荐
  2. zz: 胡适:赠与今年的大学毕业生
  3. 函数式编程扫盲 - 转载系列1
  4. 百度搜索过滤指定网站
  5. java中的线程及常用方法
  6. JVM虚拟机学习 - JVM类加载,JVM内存模型,JVM性能分析工具
  7. 用python去除SQL中的注释
  8. HTML5七夕情人节表白网页(星空萤火虫) HTML+CSS+JS 求婚 html生日快乐祝福代码网页 520情人节告白代码 程序员表白源码 抖音3D旋转相册 js烟花代码 css爱心表白
  9. python编辑程序模型_用Python的SimPy库简化复杂的编程模型的介绍
  10. 李一男/任正非,港湾/华为