前言:本文章只供学习使用,不作为其他用途,如有侵犯到您的隐私,联系我删除博文
网址:aHR0cHM6Ly93d3cuYmlsaWJpbGkuY29tLw==
本来说要去极验官网做练手的,后来发现B站上的就是极验点选,那就正好,直接顺带一波模拟登录。
老规矩,抓包分析。首先这个第一个包,这三个参数都能用到,我们先记录下来
第二次是请求了极验拿回了极验的JS文件
第三次请求是第一次极验的无感验证,这个值可传可不传,如果想传那就看我极验滑块哪个文章就行。因为极验算法都是一套的
三部曲完毕以后,开始输入账号密码,点击登录。看到再一次请求了极验,又一次的无感验证,但是也是可写可不写的。所以我将其滞空了。
这边有一次向极验发送了请求,这个地方的值就必须全部填写,有些值是需要保存下来的
这边步骤完成以后,我们开始输入点选,向极验发送请求,这边故意输入错误,然后开始跟栈,看一下这个加密的w值是如何生成的。
这边跟栈的话没什么技巧,跟滑块一样,我这边直接跟过去了。下上断点,看到了o值,简单分析一下
这边就不跟极验的坐标是经过特殊处理的,我这边直接放出来吧
final_x = int((x / 333.375) * 100 * 100)
final_y = int((y / 333.375) * 100 * 100)
其余剩下的点选没什么了,只要按照滑块的正常扣就可以了,甚至位置都没变。极验的算法就是那么两套。
这边注意,极验发送完成后的一个成功值,这边也是需要用到的,需要提前保持下来
最后分析一下登录的包
现在就是就要扣取他的一个密码加密了,这边发包请求一下,因为是异步,我这边异步跟栈是在太拉跨了,所以就用了一点小技巧直接定位过去了,发现了两个值,这边就能判断是加了盐的RSA了,怎么扣RSA,这边就不详细介绍了。
回头搜索了一下这个加盐值,发现这边这个加盐值跟rsa的key值都是传过来的。那么就更好办了,每次请求密码之前请求一下这个包就行了
最后整个B站流程分析完毕,让我们来尝试一下登录。
因为我测试过多,B站无情的封了我的账号,我使用其他账号登录,这边触发了异地风控,需要短信验证。所以这边整体没什么大问题。B站的登录流程算是彻底分析完毕,也算我学爬虫的一个里程碑吧!
结言:我是一个热爱爬虫的小菜鸟,欢迎各位大佬来跟我讨论,文章有任何不对的地方也欢迎指出。