youxii52 发表于 2020-11-28 23:52

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

各位老铁又见面了,话不多说直接主题
分析:
1.打开猫眼登录页面,随便输入账号,密码,登录,来看这个POST包
https://attach.52pojie.cn//forum/202011/28/232330attm4gr9y1h3blmt.png?l
我们先来看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或者正则一下这就轻松解决
https://attach.52pojie.cn//forum/202011/28/232529hnvu27i89l22vn2y.png?l
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也是在登录界面的网页里,这里就不多说了
https://attach.52pojie.cn//forum/202011/28/232537cmfbm0nmztqlql1t.png?l
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的参数的组装
https://attach.52pojie.cn//forum/202011/28/232540aacmt2cackkkgx3k.png?l
我们Console验证一下,而url就是我们表单URL信息,加起来其实就是POST的URL,其实就是query string parameter的参数的组装
https://attach.52pojie.cn//forum/202011/28/232543wnbb4cw8ancirzwb.png?l
5.我们再来看utility.getH5fingerprint这个函数,一气呵成,我们跟进去看看是怎么定义的,
util.getH5fingerprint = function (url) {
    url = url || '';
    try {
      return Rohr_Opt.reload(url) || rohr.reload(url);
    } catch (error) {
      console.error('getFingerprintFail');
      return '';
    }
}
https://attach.52pojie.cn//forum/202011/28/232548fyxky9jljoepekyd.png?l
OK,我们试着改写一下JS,把改写的JS跑一下看,结果没有问题,h5Fingerprint就是把我们的POST地址通过getH5fingerprint函数加密成这一大串

https://attach.52pojie.cn//forum/202011/28/232551fxcjjpxpw881ommn.png?l

6.OK,我们再来看password加密,一气呵成,我们很快就定位到这里
https://attach.52pojie.cn//forum/202011/28/232554g3c4w9w69s65jdfs.png?l
ataJson.password =encrypt.encrypt(dataJson.password)
dataJson.password就是我们明文密码
接下来我们看encrypt.encrypt这个函数
https://attach.52pojie.cn//forum/202011/28/232557qa1ra1hmadm171uj.png?l
JSEncrypt.prototype.encrypt = function (str) {
      // Return the encrypted string.
      try {
            return hex2b64(this.getKey().encrypt(str));
      }
      catch (ex) {
            return false;
      }
    };
7.OK,我们再一次试着改写一下JS,把改写的JS跑一下看,结果没有问题

https://attach.52pojie.cn//forum/202011/28/232600bojgesexd5lxljq0.png?l

8.最后,我们用代码验证一下
https://attach.52pojie.cn//forum/202011/28/232603olrj5gvd4mv9l5qv.png?l

至此游戏结束,附上JS代码:复制这段内容后打开百度网盘App,操作更方便哦。 链接:https://pan.baidu.com/s/1NYnphJRL3-uELn2RJgk91w 提取码:ur6c

PS:码字不易,下次我们接着讲改写JS和撸代码实现

a3322a 发表于 2020-11-29 00:58

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

pjrnong 发表于 2020-11-29 01:29

谢谢分享,mark 学习。

mzhsohu 发表于 2020-11-29 02:14

感谢分享~!
能出视频就好了~!

伯婆派1 发表于 2020-11-29 08:20

原点的守候 发表于 2020-11-29 08:20

虽然看不懂,任然支持一下

qihang5518 发表于 2020-11-29 08:27

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

枫叶飞向海 发表于 2020-11-29 08:39

认认真真的看完了。

弗由 发表于 2020-11-29 09:49

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

dork 发表于 2020-11-29 09:56

账号:13527455987
密码是:123456;www
页: [1] 2
查看完整版本: 记一次猫眼电影登录POST参数分析