某网站登录协议分析

某网站登录协议分析

目录使用工具流程分析访问首页点击登录按钮需要处理的点密码加密算法还原这样密码算法就还原了,接下来分析一下验证码模拟浏览器请求

使用工具

# 浏览器 谷歌

# 抓包工具 Fiddler

# 语言 python与js

流程分析

访问首页点击登录按钮

# 登录包为 http post请求 提交参数(json)如下

{

"callbackVOList": [{

"callback": {

"loginName": "91XXXXXXXXXXXXXX", # 账号

"moduleName": "PasswordModule",

"prompt": "用户名",

"step": 1,

"subjectNeedFill": true

},

"callbackType": "cn.org.bjca.am.authframework.callback.LoginNameCallback",

"order": 0

}, {

"callback": {

"encoding": false,

"moduleName": "PasswordModule",

"password": "3F647993D5419FFD275CB405A319F5CE644C0549", # 加密后的密码

"prompt": "密码",

"step": 1,

"subjectNeedFill": true

},

"callbackType": "cn.org.bjca.am.authframework.callback.PasswordCallback",

"order": 1

}, {

"callback": {

"choices": {

"1": "个人用户",

"2": "单位用户",

"3": "代办人"

},

"defaultChoice": "",

"moduleName": "PasswordModule",

"multipleSelectionsAllowed": false,

"prompt": "111",

"selectedKey": "1",

"step": 1,

"subjectNeedFill": true

},

"callbackType": "cn.org.bjca.am.authframework.callback.ChoiceCallback",

"order": 2

}, {

"callback": {

"moduleName": "PasswordModule",

"prompt": "验证码",

"step": 1,

"subjectNeedFill": true,

"validateCode": ""

},

"callbackType": "cn.org.bjca.am.authframework.callback.ValidateCodeCallback",

"order": 3

}, {

"callback": {

"moduleName": "PasswordModule",

"step": 1,

"subjectNeedFill": true,

"type": ""

},

"callbackType": "cn.org.bjca.am.authframework.callback.AppTypeCallback",

"order": 4

}],

"indexName": "initService",

"indexType": "service",

"moduleName": "PasswordModule",

"step": 1

}

需要处理的点

1.密码被加密了

2.存在一个登录验证码

密码加密算法还原

strEnc(e.legelPwd, t.randomCode, "", "") -> 'A6C9AF79F04BEA097DBDAB8B968AECBB'

strEnc函数传入4个参数,返回了加密后的密码

参数1 e.legelPwd就是我们输入的密码

参数2 t.randomCode -> "Ljg0MDAwNzk3Mw==" 是一个字符串

strEnc(输入密码, 响应的值, "", "") -> 就能拿到加密后密码

这样密码算法就还原了,接下来分析一下验证码

检查这两个请求发现,提交验证码的token也没再登录请求携带,过验证码成功也没有响应cookie,这个验证码可能可以直接绕过(相当于只做了页面的验证码,通过协议模拟可以绕过这个步骤?),直接不请求验证码,模拟登录请求验证一下猜想

模拟浏览器请求

# 测试发现返回验证码错误,看来还是要过这个验证码估计是这个cookie在后台做了过验证码记录

# 那就继续把验证码过了

# 找一下这个clientUid值怎么来的

使用文心一言生成个uuid的代码拿来用一下

# 猜想x 应该是距离 y 为高度

# 验证后发现 x = 310 * 滑动距离 / 400 y = 5 固定值

# 发现保存到本地的图片是310长度,那x值就不用做处理,直接识别出来使用就行

相关推荐

FGO国服和谐前后对比图 FGO恢复卡面对比
mobile365体育投注官网

FGO国服和谐前后对比图 FGO恢复卡面对比

📅 07-12 👁️ 7765
问爱立信是哪个国家的品牌
365网络科技有限公司

问爱立信是哪个国家的品牌

📅 07-23 👁️ 5123