仅供研究学习使用。
今天带来的是dx滑块验证码的逆向
目标站 --> 传送门
解决此类验证码 首先要解决滑动距离的判定 无论是使用selenium还是使用协议的方式来破解 都绕不开滑动距离的识别
滑动距离可以参考以前我博客上的方式,或者找一找开源的一些算法,正常的pillow+cv2就可以搞定。
废话不多说我们直接进入正题。 先抓包分析接口
不难分析 ak为固定参数 类似于极验中的gt 我们主要需要分析的加密参数为ac
找到ac初始化的地方,发现就是传入一个图片的token![在这里插入图片描述](https://img-blog.csdnimg.cn/2edc4d5a7c4a496db4358ce90f0330df.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5LqV6JuZ5LiN5Y-v6K-t5LqO5rW3,size_12,color_FFFFFF,t_70,g_se,x_16)
看下ua赋值操作的地方,下断点,滑动的时候停住,看调用栈,就可以找到是哪里传入的参数。发现是滑动的时候,传入的touch事件让ua长度增加了。也可以发现需要touch事件的哪些属性。
所以ua生成分三步。
1.初始化传入图片token生成ua。
2.滑动后传入事件生成ua。
3.最后sendSA和sendTemp后生成最终的ua。
最终在node中模拟也遵循这三步就好了。
另外我们补环境的话可以考虑jsdom,牺牲一定效率的情况下换取补环境需要花费的时间。
至此分析结束。
dx滑块的难点在于以下几点
1.如何识别滑动距离(有干扰项的情况下)
2.nodejs中如何模拟浏览器的监听事件机制
3.如何绕开二次验证的风控
4.验证我们生成ac的算法是否正确