阿里系滑块

目标网站:aHR0cHM6Ly9wYXNzcG9ydC5kYW1haS5jbi9sb2dpbj9ydT1odHRwcyUzQSUyRiUyRnd3dy5kYW1haS5jbiUyRg==

第一步我们打开网站输入账号就会弹出验证码,这就是我们要研究的对象

f12打开开发者工具抓包 

 图中框选出来的数据包是我们要研究的

因此我们添加xhr断点

断下来之后向上找堆栈,定位到加密函数

 点进去之后我们找到了目标js文件fireyejs.js

 这个js文件经过非常严重的控制流混淆所以我们硬刚是很困难的

这里我选择用ast进行一下简单的还原,来帮助我们分析

 通过观察我们可以发现他代码的主要逻辑全都在这个循环之内,并且最后执行的语句由 31 & Ct ,bt ,St 这三个值控制,并且这三个值都能由Ct 计算得出,所以我们保存下Ct就相当于保存了代码的执行流程

这里我是选择用ast解析出每一个Ct对应的语句保存下来然后再根据浏览器中保存的Ct来还原出代码的执行流程

对于第一层和第二层switch解析起来比较容易,都是标准的switch语句,第三层是由大量的判断来达到控制流混淆的效果

通过观察我们可以发现

 我们可以通过St的运算符和比较数来确定唯一的执行语句

 遍历所有的语句这样我们就能解析出来第三层

这是最后解析出来的语句

 按照执行流程还原出来的代码

拿到了初步还原的代码我们继续分析

一般情况下网站的加密有好几层,我们先分析最后一层,如何把数组转化成字符串

 

 Qo是我们需要的字符串,然后观察我们还原出来的代码

 我们发现这里是个循环,看见循环,我们就大概率认为这里是加密算法

为了验证猜想,我们在此处下断点

 

根据输出判断这里就是他最外层的加密函数

 循环体代码为

Ct = (q = N < _) ? 2661 : 7873;
6233 (3) [5, 19, 2]
q = N++, xe = $[q], Z = 255 & xe, q = N++, xe = $[q], Ee = 255 & xe, q = N++, xe = $[q], x = 255 & xe, ee = Z >> 2, Ct = 12385;
6234 (3) [1, 3, 12]
le = (xe = (q = 3 & Z) << 4) | (q = Ee >> 4), Te = (xe = (q = 15 & Ee) << 2) | (q = x >> 6), de = 63 & x, xe = N === (q = _ + 2), Ct = 2150;
6235 (3) [6, 3, 2]
Ct = xe ? 9828 : 9281;
6236 (3) [1, 2, 9]
Ct = (ke = N === (q = _ + 1)) ? 14340 : 5312;
6237 (3) [0, 6, 5]
q = Y[m](ee), xe = re + q, q = Y[m](le), ke = xe + q, q = Y[m](Te), xe = ke + q, q = Y[m](de), re = xe + q, Ct = 25025;
6238 (3) [1, 14, 24]
Ct = 2789;

对于一个循环要有四个部分

这段代码对应第二部分,来控制循环什么时候结束
Ct = (q = N < _) ? 2661 : 7873;
这段代码对应第三部分,变量N自增
q = N++, xe = $[q], Z = 255 & xe, q = N++, xe = $[q], Ee = 255 & xe, q = N++, xe = $[q], x = 255 & xe, ee = Z >> 2, Ct = 12385;

剩下的代码就是循环体了,每一次循环结束就又会跳转到判断语句进行下一次循环

 现在对于一个循环三部分都有了,我们就要开始寻找第一部分变量的初始化

 一直向上找找到第一次循环的开始,继续向上就能找到变量初始化的部分,这样我们就能完整的复现出这个循环

这个循环是对$这个列表进行遍历

 下一个目标就是看这个$是哪里来的,方法大同小异,花点时间都能搞出来

最后滑块验证通过之后会返回一个cookie x5sec 携带着这个cookie就可以登录了

 

  • 10
    点赞
  • 50
    收藏
    觉得还不错? 一键收藏
  • 14
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 14
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值