一、声明!
原创文章,请勿转载!
本文内容仅限于安全研究,不公开具体源码。维护网络安全,人人有责。
文章中所有内容仅供学习交流使用,不用于其他任何目的,均已做脱敏处理,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关。
本文章未经许可禁止转载,禁止任何修改后二次传播,擅自使用本文讲解的技术而导致的任何意外,作者均不负责,若有侵权,请联系作者立即删除,请各位自觉遵守相关法律法规
二、介绍
滑块来源官网demo:aHR0cHM6Ly93d3cuZGluZ3hpYW5nLWluYy5jb20vYnVzaW5lc3MvY2FwdGNoYQ==

三、分析滑块接口
1、请求获取验证码
接口:https://cap.dingxiang-inc.com/api/a
请求参数(只说需要处理的):
ak:当前滑块的token
c(校验不严):第一个c1接口返回
aid:由时间戳和随机数组成
cid(校验不严):当前滑块接口返回
_r:随机数
接口返回:

2、请求获取到参数c
接口:https://constid.dingxiang-inc.com/udid/c1
请求参数(只说需要处理的):
Param:index.js文件中加密得
接口返回:

3、校验验证码
接口:https://cap.dingxiang-inc.com/api/v1
请求参数(只说需要处理的):
ac(主要解决参数):greenseer.js文件中加密得
sid:请求滑块接口a返回。
aid:与请求滑块接口中的aid保持一致。
接口返回:

四、底图还原
接口返回的图片地址,是经过混淆的,如下:

我们要还原为正常的图片,就需要逆向网页上面还原的过程:
1、F12控制台中,勾选画布,进行debugger。

2、然后重新加载验证码,就会断点在cavans处。

3、到这里,大概的逻辑就是,拿到一个32长度的数组,然后根据数组循环就可以还原验证码。其中x方法就是主要还原的函数,o.drawImage就是还原操作。

五、ac参数加密
该参数的生成,主要是在greenseer.js中实现的,而这个文件会在每天的上午10、晚上19点进行更新一次。
找到ac参数生成位置:
1、在校验接口,最后发包处打上断点。

2、然后滑动验证码,触发断点。接着往上跟栈找到关键代码z.sendSA()的位置,再打上断点就可以看到ac参数等信息了。 
3、从这里开始往上找到初始的ua生成,然后初始的ua会再经过两次加密,最后就会得到ac参数了。可以先补环境拿到加密的ac参数,没问题后再扣算法。
六、结果

有需求找:
var my_wx = x0082088
创作不易求个赞再走~~~
逆向学习交流群:450297392

1727

被折叠的 条评论
为什么被折叠?



