通过开发者工具获取weibo.com下所有的js文件,查找与账号密码加密有关的代码段
接下来是获取并处理severtime的代码
ssoServerTimeTimer :
calcServerTimeInterval : 自增间隔
prototypeTimer :
setServerTime() :servertime从浏览器接收到开始自增
getServerTime() : 通过prelogin()获得severtime
prelogin(): 触发账号框的blur事件后,用于获取服务器关于账号密码加密的参数
发现:
从获得servertime开始,每两秒severtime+=2,至post操作结束自增,发送给服务器
待解决问题:
代码逻辑与抓包结果大致匹配,但是有偏差
username的加密方式:base64加密
password加密方式:
RSA加密:
hex_sha1加密:
结果:
账号加密的方式是base64
密码加密的方式是 servertime + ‘/t’ + nonce + ‘/n’ + password之后再进行rsa加密或三次hex加密(根据服务器发送的关于加密方式的标识,进行指定加密,一般是rsa加密),服务器解密出来的结果是拼接的字符串,所以servertime的值的变化不影响密码的传递,可以忽略
转载请注明原文地址: https://ju.6miu.com/read-10808.html