最近登录了下12306,发现验证码逻辑变了,之前是验证码点击验证,现在变成了滑动验证了,今天先占个坑先写一部分。
-
滑动完成后会发送post请求携带参数一下
https://kyfw.12306.cn/passport/web/slide-passcode 去这里获取if_check_slide_passcode_token
-
sessionid
-
sig
-
if_check_slide_passcode_token
-
scene: nc_login 定值
-
username
-
password 加密字符串
-
tk 空
-
checkmode 1
-
appid: otn定值
-
-
获取滑动验证内容
https://kyfw.12306.cn/passport/web/slide-passcode 去这里获取if_check_slide_passcode_token
-
调用滑块getSlidePasscode携带了两个参数nc_token slideflag
nc_token的值为if_check_slide_passcode_token获取的内容 slideflag的值为true appkey是默认值'FFFF0N000000000085DE' scene = 'nc_login'
-
调用滑动验证滑动发送get请求
url = https://cf.aliyun.com/nocaptcha/analyze.jsonp 携带参数有 a: appkey的值 t: nc_token的值 n:猜测是滑动轨迹 p:{"key1":"code0","ncSessionID":"69db02b36b98"未变动,"umidToken":"T2gACMu3Z9BJJx7W6yYfLh截断CgKBYPn13W0rCFdT16c="变动} scene:nc_login 定值 asyn: 0定值 lang: zh定值 v: 数字 callback:jsonp_037122355338756763
-
password加密部分
使用encrypt_ecb加密,传入的参数有两个,第一个是密码,第二个是'tiekeyuankp12306' 之后返回加密字符串base64做加密
-
tn生成方式 这个是在滑动之前生成的 data变动
url:https://ynuf.aliapp.org/service/um.json post
data: 106!f+Emc0c很长diCU3SorCUE0==
xa: FFFF0N000000000085DE
xt:
efy: 1
response:{"tn":"T2gA截断6ZtnR-elSythOg=","id":"G801截断BE3"}
tn中的data生成方式
o = Flag: 2980046 GPInterval: 50 MPInterval: 4 MaxFocusLog: 6 MaxGPLog: 1 MaxKSLog: 14 MaxMCLog: 12 MaxMPLog: 5 MaxMTLog: 500 MaxNGPLog: 1 MaxTCLog: 12 MinMTDwnLog: 30 OnlyHost: 1 SendInterval: 5 SendMethod: 8 api: 1 font: 1 hook: 1 isSendError: 1 mIDs: (2) ['nc-canvas', 'click2slide-btn'] sIDs: ['_n1t|_n1z|nocaptcha|-stage-1'] 函数e(1, o)
后面空了再完善,还有部分代码。