实战4-x轴y轴,过点触验证码
目标网站
aHR0cDovL3d3dy55bmdwLmNvbS9wYWdlL3Byb2N1cmVtZW50L3NlYXJjaEZvck1haW4uaHRtbD9idWxsZXRpbnRpdGxlPSUyNUU3JTI1OUYlMjVCRg==
1.先手动过验证查看如何获取数据

过了验证查看获取数据的请求链接,可以复制curl分析得知在请求负载中字符串参数captchaCheckFlag是变化的

2.参数captchaCheckFlag
2.1分析captchaCheckFlag
搜索captchaCheckFlag并调试打断点,查看captchaCheckFlag来源
控制台输出可知this.captchaCheckId就是captchaCheckFlag

通过堆栈方式查找到this.captchaCheckId

分析这一行代码aesEncrypt,查看aesEncrypt中参数与请求验证码的响应结果作对比
其中请求验证码的负载中有两个参数
clientUid:是uuid
ts:时间戳

aesEncrypt:是函数,可以直接拿js代码也可以自己魔改,
_this.backToken:是请求响应中的token
_this.secretKey:是请求响应中的secretKey
JSON.stringify(_this.checkPosArr):是坐标,用ddddocr解决

2.2.1JSON.stringify(_this.checkPosArr):坐标
想要知道坐标就需要先获取被点击的图片和需要点击的文字 回头看验证码请求的响应内容中,有图片和需要点击的文字,
调用ddddocr,这两个值作为参数得到坐标:[{"x":122,"y":59},{"x":154,"y":74},{"x":221,"y":91}]修改为这样的格式
2.2获取captchaCheckFlag
captchaCheckFlag组成captchaCheckFlag = aesEncrypt(str(str(token) + '---' + 坐标),secretKey)
得到captchaCheckFlag后不要着急,还需要校验验证码
3.校验验证码
3.1获取参数
对比请求验证码中多了一个**pointJson**参数
老规矩搜索pointJson,打断点,在控制台挨个输出参数

两个参数打印出来发现和在获取captchaCheckFlag过程中aes函数的参数类似,但是在获取captchaCheckFlag过程中aes函数的第一个参数值是由(token+坐标)传入,这边只需要传入坐标,那便直接拿来用就好,
aesEncrypt:是函数,同上
JSON.stringify(_this.checkPosArr):是坐标,结果同上
_this.secretKey:是请求响应中的secretKey,结果同上
3.2获取参数
pointJson组成 pointJson = aesEncrypt(str(坐标),secretKey)
4.获取数据
将2.2中最后获取到的**captchaCheckFlag**传入到url中,这边如果直接传入params中貌似不太行
5.流程图


浙公网安备 33010602011771号