0%

抖音登录加密js逆向

这两天帮朋友爬抖音的评论,爬的时间长了cookie失效导致从接口返回不到数据,故尝试模拟登录抖音进行爬虫记录一下。

首先抓包

image-20220930105102661

输入错误的密码点击登录,找到请求接口。

查看请求数据,发现输入的账号和密码已被加密

image-20220930105244518

通过请求数据,搜索关键字“password

通过分析找到疑似加密函数

打个断点,重新点击登录

image-20220930105905773

可以发现在这里确实停住了,此时显示的账号密码是明文,还没有被加密,单步执行后发现执行完accountLoginV2函数后账号密码会被加密,继续单步进入accountLoginV2函数内部,发现加密是在z函数中实现

image-20220930111036186

先看一下z函数的实现

image-20220930111159290

z函数接受两个参数,第一个参数是P函数的返回结果,第二个参数是固定的,知道了加密函数,加密参数,下一步就是补环境,将z函数复制到本地并手动补充各参数

首先要成功运行z函数,那么就得通过P函数,查看P函数的实现,发现是assign方法

image-20220930111343608

开始本地构造

image-20220930111740128

尝试运行,发现w未定义,是z函数中调用了w函数,那么继续找到w函数补在本地

image-20220930112103290

w函数很简单

image-20220930112221116

补完环境继续运行,发现Y函数未定义,继续找到函数补在本地。

补完环境后,尝试运行,运行成功,与之前请求的内容一样。

image-20220930112458382

剩下的就用execjs运行这段js,配置好请求头,就可以用python模拟登录啦。

完结!