本平台的反扒机制就是字母数字组成的验证码,谷歌浏览器打开本网站f12,点击导航栏的时候,会出现验证码,看了一下,验证码请求的接口信息
接口信息如下:
验证码主要的信息都包含在这个getVerificationCode接口中,从返回的数据,可以看出
imgCode:验证码图片的base64编码,打开浏览器看一下
verificationCodeGuid,这个先别管,后面请求数据的时候会用到
看了一下请求体
一长串字符串,加密过的
打开调用栈
第四个这里有点像,在这里下个断点
就是这里了,看看这个addSomething()方法接收的参数是什么东西
应该就是这个固定的json字符串,里面包含了图片的宽100,高40,和验证码的长度4
加密方法就是这个addSomething,跟进去看一下,加密的主要方法就在这了
复制到本地调用
本地执行后,报错 sm2Encrypt未定义,现在去找这个sm2Encrypt
继续上面addSomething方法里面跟进去, 将这一页复制到本地
继续报错,window未定义,定义一下window
继续报错CryptoJS未定义,导入CryptoJS
继续报错navigator未定义,定义一下navigator
SM2Utils未定义,搜索代码中有两个SM2Utils
这里引用的SM2Utils是未定义的,继续搜索上面
这里定义了 window.SM2Utils = {},因为在浏览器中,window对象可以直接使用,而在本地报错,在调用SM2Utils的这里,改一下
最后成功得到加密参数