一、准备工作
所需清单
- 谷歌浏览器
二、password加密分析
我这里选择的是账号密码登录的请求包
通过重复几次抓包发现只有password里面的参数每次请求都会变化,其他的部分我们复制粘贴过去就行,我们直接搜索password:
直接点进去第一个:
第一个点进去就看到了一个名叫userNameLogin的函数,下了断点后,可以看到函数的传参传入了我们输入的用户名和密码:
可以看到它这里是用了userNameLogin的函数名封装了sdk_pc文件里面的userNameLogin,把用户名密码等数据再次传入到sdk_pc.userNameLogin
跟进去后看到e被赋值了一个o[t],并向赋值后的e传入,e和一个数组:
t是字符串"userNameLogin",把o里面名叫"userNameLogin"的对象赋值给e,我们跟进去看看o[t]是什么:
跟进去后发现又是一个登录函数,观察到下面的ajax里面的data,发现这正是我们的请求头,请求头password的地方有一个encrypt:
发现传入了我们的明文密码,就是这了:
扣完代码后,输入我们之前输入的密码看看结果:
把之前的断点全部放行,发出请求,我们可以看到和加密后的密文是一样的:
三、 验证码
当登录错误次数过多后就会需要验证码,并且表单里会多出这两行:
validcode:就是需要输入的验证码
vcodekey:是登录次数过多后服务器返回的key,用来请求验证码图片用,并且登录的时候也需要加上
vcodekey在登录的响应包里面,通过这个地址在就能请求到验证码图片:
通过测试一个vcodekey可以请求无数次的验证码,可以批量下载本地来训练来识别