今天在鱿鱼助手上新增了一个软件,铜仁学院

现在解析下算法,通过抓包发现了个奇葩

请求体和参数都有数据,是前端没更新还是故意这样设计的?
去掉了params测试后发现任然可以获得登陆数据
bash
{"username":"20xxxxxx01","password":"57D4xxxxxxxxx97B16","digest":"94eced0xxxxxxxx45b78","timestamp":1782882781889,"vrifyCode":"jj8q"}
密码被加密了,然后对请求体进行了个签名,后端加上了签名校验
网页定位到登陆接口,可以清晰看到每个参数的加密方式,比较简单直接上手解密

password加密
bash
# 测试
if __name__ == '__main__':
password = "123123"
# 使用 aesEncrypt 对应的加密方式
encrypted = aes_encrypt(password)
print(f"加密结果: {encrypted}")
# 注意:aesEncrypt 的输出是 hex 字符串,
# 而 myDecrypt 期望的是 Base64 输入,两者不兼容
# 如果需要互解,需保持同一套逻辑
和网页加密123得到的结果是一样的

digest加密

最后还发现这个验证码没什么用,只需要提交的验证码和签名计算内的验证码一样即可
bash
const arr = [
`username=${account}`,
`password=${encryptPassword}`,
`timestamp=${timestamp}`,
`vrifyCode=${genCode}`,
];
和提交的"vrifyCode": "123123"一致即可
最后写成脚本,大功告成

接下来使用登陆的accessToken进行调用接口即可,如需使用请去鱿鱼助手直接使用成品