声明
本文章中所有内容仅供学习交流,抓包内容、敏感网址、数据接口均已做脱敏处理,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关,若有侵权,请联系我立即删除!
逆向目标
目标:某鹏教育登录接口加密,含有简单的JS混淆
主页:aHR0cHM6Ly9sZWFybi5vcGVuLmNvbS5jbi8=
接口:aHR0cHM6Ly9sZWFybi5vcGVuLmNvbS5jbi9BY2NvdW50L1VuaXRMb2dpbg==
逆向参数:FormData:black_box:eyJ2IjoiR01KM0VWWkVxMG0ydVh4WUd...
逆向过程
本次逆向的目标同样是一个登录接口,其中的加密JS使用了简单的混淆,可作为混淆还原的入门级教程,来到登录页面,随便输入账号密码进行登录,其中登录的POST请求里,FormData有个加密参数black_box,也就是本次逆向的目标,抓包如下:
直接搜索black_box,在login.js里可以很容易找到加密的地方,如下图所示:
看一下_fmOpt.getinfo()这个方法,是调用了fm.js里的OO0O0()方法,看这个又是0又是O的,多半是混淆了,如下图所示:
点进去看一下,整个fm.js都是混淆代码,我们选中类似OQoOo[]的代码,可以看到实际上是一个字符串对象,也可以直接在Console里输出看到其实际值,这个OO0O0方法返回的oOoo0[OQoOo[]](JSON[OQoOo[35]](O0oOo[OQoOo[]])),就是black_box的值,如下图所示:
仔细观察,可以发现OQoOo应该是一个类似数组的东西,通过传入元素下标来依次取其真实值,随便搜索一个值,可以在代码最后面找到一个数组,这个数组其实就是OQoOo,可以传入下标来验证一下,如下图所示:
到这里其实就知道了其大致混淆原理,我们可以把这个JS拿下来,到本地写个小脚本,将这些值替换一下:
#==================================#--*--coding:utf-8--*--#
Time:-11-09#Author: