很久之前发在知乎的文章,博客好久没更新,转过来水个文

快手登录

快手的接口很简单,带着登录后的cookie去请求/pass/kuaishou/login/passToken这个接口,response中的web_ph、web_st就是接口需要的cookie。ok,让我们看看怎么登录。

打开fiddler,无痕打开快手,输入手机号点获取验证码,发现了以下带有手机号的post请求:

看这个接口名字就知道是请求发送验证码的,可以看到cookie带了个did,搜一下did,发现请求首页时候response会返回带有did的cookie:

输入验证码点登录,发现/pass/kuaishou/login/mobileCode就是登录请求:

写个登录demo(注意header referer):

运行一下:

OK了

验证码逆向

拿到cookie只是第一步,后续的请求经常会出现滑块验证。

追/rest/zt/captcha/sliding/verify这条请求的栈,发现生成加密的位置:

打个断点滑一下滑块:

再调试下,确认就是这一步加密的验证码:

还原参数:

r为captchaSession、浏览器指纹、滑动轨迹做了一个url编码,再简写就是:

到这儿已经很明显了,AES加密。 但是key(即为e[0])和iv(即为e[1])都不是16/32位的?尝试直接base64解密:

还是不对劲,只能继续追parse和toString

追parse:

追toString:

到这儿就ok了,把上面的js扣下来。写个demo测试下:

ok了。