实用篇!小米商城模拟登录、混淆 js(全方位讲解。 超详细)
该文章主要提供交流学习使用,请勿利用其进行不当行为!
如本篇文章侵犯了贵公司的隐私,请联系我立刻删除!
如因滥用解密技术而产生的风险与本人无关!
昨天本来想买手机的,
然后就去了小米官网。
ps:
忠实的米粉。
为发骚而生。
然后捏。。就像看看小米的登录。。
哈哈哈哈哈哈哈啊哈哈哈哈
然后看到,是混淆的js。就起劲了。。
昨天晚上搞得。
今天测试了几遍。
然后发现。
感觉挺有意思的。
今天就写个文章吧,分享一下。
前人栽树后人乘凉。
坑都替你们踩过一遍了。
以下说的很详细撒!!
2000字的文章!!
进入正题;
小米官网登录网址
https://account.xiaomi.com/pass/serviceLogin
输入账号密码,最好是错误的,,
更好的抓包。
这里看到,
点击登录后,会出现四个包。
两个数据包,两个图片。
这里看一下第一个数据包。
分析一波波
k:固定的。
locale:固定的。
_t:时间戳。
s:加密数据。看着有点像AES。
d:看着给瑞数一样。。。。哈哈哈哈哈。或者就是极验的AES + RSA。
a: 固定的。
开搞开搞:
type是xhr请求。。。
那就xhr,,方便快捷。。。
这里就详细点吧。
1. 可以这样直接进入函数,
2. 在这里输入网址。。但是确定是唯一的,要不然断的地方不是自己想要的,很麻烦,,,还可以直接输入参数的名字。
具体可自行百度谷歌调试。
下上断点后,
点击登录。
然后就看到了亲爱的混淆,么么哒、
看到我们想要的数据,这里根据调用栈一步步找。
到这里后我们看到。
这里有一个data。
而且,网上看,
一个参数值是 a。
那我们所找的参数里面是不是也有a。
那我们暂且认为加密就是在这里生成的。
下上断点。
重新点击登录。。
看到断点已经停下了。
经过分析。
已经确认就是此处。
网上看,加密基于_0x494166这个参数。
我们复制出来。
//混淆。
var _0x494166 = _0xe9ca87[_0x239f('0x287')]['getData']();
//正常。
var _0x494166 = _0xe9ca87["collecter"]['getData']();
这里插播一下。混淆解密。
_0x239f('0x287') === 'collecter'
看到这种混淆。
直接上顶部复制下来既可。
找到_0x239f函数。
然后打印_0x239f('0x287')
发现内存严重溢出。
也就是所说的内存爆破。
这里不过多说原理,基本上就是正则。
这里说下解决办法,,基本上通杀。。
结构如下。
删除我圈起来的函数。
然后修改为这样子。。
然后打印。。。
接着我们说的。