记一次猫眼电影登录POST参数分析

查看 82|回复 8
作者:youxii52   
各位老铁又见面了,话不多说直接主题
分析:
1.打开猫眼登录页面,随便输入账号,密码,登录,来看这个POST包
[i]
我们先来看query string parameter里的参数
risk_partner: 0
risk_platform: 1
risk_app: -1
uuid: cf19286c50c54ab19274.1606477061.1.0.0
token_id: DNCmLoBpSbBD6leXFdqIxA
service: maoyan
continue: https://maoyan.com/passport/login?redirect=%2F
其中变化的就是uuid和token_id
2.ok,去掉cookies,我们单独请求一次登录URL,全局搜索一下,发现uuid和token_id就在网页里面
,我们只需要xpath或者正则一下这就轻松解决
[i]
3.接下来是Form Data里的数据
countrycode: 86
email: 13527455987
password: f70bkLcObK5NcQgzV9MjOLYkoHr+lhWeG3IrV8RhlbibMkQj06+FVcXGfGZOA1s24d1OFqPwSRNGCKLKAUqHyO5uEhL+o=
origin: account-login
csrf: EhvdrukW-qDJyPyj2GRDwq_HuDRuR13_9MX4
requestCode:
responseCode:
h5Fingerprint: eJyNWAmP6sqV/ivoSm+UEbzrfX3zsDga8KGp4Bsurpkob6A6YSz8KIFaG5hQJ7iCM+xDfFK6Ww6e9yAHBxUjTcb+vAY6c=
device_name:
device_type: Chrome
device_os: Window
sdkType: pc
其中变化的就是csrf和password、h5Fingerprint
通过刚才发现csrf也是在登录界面的网页里,这里就不多说了
[i]
4.我们先来来看这个最长的h5Fingerprint到底是什么鬼,我们再次去掉cookies,随便输入账号,密码,登录一下
,下断点,搜索,一气呵成(为了方便,这种操作我们就简称为一气呵成)我们发现h5Fingerprint = utility.getH5fingerprint(window.location.origin + url)
这么一串东西 (utility对象下面有一个getH5fingerprint的函数,然后传入了window.location.origin + url这个参数),window.location.origin就是获取'?'前边的URL
我们Console验证一下,而url就是我们表单URL信息,加起来其实就是POST的URL,其实就是query string parameter的参数的组装
[i]
我们Console验证一下,而url就是我们表单URL信息,加起来其实就是POST的URL,其实就是query string parameter的参数的组装
[i]
5.我们再来看utility.getH5fingerprint这个函数,一气呵成,我们跟进去看看是怎么定义的,
util.getH5fingerprint = function (url) {
    url = url || '';
    try {
        return Rohr_Opt.reload(url) || rohr.reload(url);
    } catch (error) {
        console.error('getFingerprintFail');
        return '';
    }
}
[i]
OK,我们试着改写一下JS,把改写的JS跑一下看,结果没有问题,h5Fingerprint就是把我们的POST地址通过getH5fingerprint函数加密成这一大串
[i]
6.OK,我们再来看password加密,一气呵成,我们很快就定位到这里
[i]
ataJson.password =  encrypt.encrypt(dataJson.password)
dataJson.password就是我们明文密码
接下来我们看encrypt.encrypt这个函数
[i]
JSEncrypt.prototype.encrypt = function (str) {
        // Return the encrypted string.
        try {
            return hex2b64(this.getKey().encrypt(str));
        }
        catch (ex) {
            return false;
        }
    };
7.OK,我们再一次试着改写一下JS,把改写的JS跑一下看,结果没有问题
[i]
8.最后,我们用代码验证一下
[i]
至此游戏结束,附上JS代码:复制这段内容后打开百度网盘App,操作更方便哦。 链接:https://pan.baidu.com/s/1NYnphJRL3-uELn2RJgk91w 提取码:ur6c
PS:码字不易,下次我们接着讲改写JS和撸代码实现

参数, 函数

a3322a   

感谢分享,学习了!顺便问下有哪位老师能抓到网易云音乐的cookie?
pjrnong   

谢谢分享,mark 学习。
mzhsohu   

感谢分享~!
能出视频就好了~!
伯婆派1   

虽然看不懂,任然支持一下
原点的守候   

教程很好啊,小白可以照着学习
qihang5518   

认认真真的看完了。
枫叶飞向海   

很详细的教程,感谢分享。
弗由   

账号:13527455987
密码是:123456
您需要登录后才可以回帖 登录 | 立即注册

返回顶部