易班模拟登录-Day1笔记

易班模拟登录

参考:https://zhuanlan.zhihu.com/p/28354424

大佬省略了一些东西,俺补充一下,学习哈哈

1、工具:火狐浏览器

(1) 扩展:火狐启用持续日志功能

 

 

 

 

 

 

 

作用就是:页面跳转数据不自动清零

 

二、进入易班登录页面 https://www.yiban.cn/login?go=http%3A%2F%2Fwww.yiban.cn%2F

 

打开调试工具,右键检查元素

 

 

 

 

在各个网络请求中进行筛选,我们只要htmlXHR格式的

 

输入已有账号进行登录

 

 

 

 

登录进去之后,可以看到地下的请求中,选择dologinAjax请求

 

 

 

可以看到,我们登录的时候其实就是把我们的账号、密码还有captcha(输入的验证码)还有keytime手机戳进行请求,但是我们会发现账号就是我们输入的账号

但是这个密码的话进行了加密,因为当下加密都是通过一个包来实现,我们模拟登录的话,就是要让模拟一个请求和上面的请求是一样的,也就是说我们要找到这个包,然后把我们真实的密码进行加密,然后把加密之后的密码添加到我们的配置里面,之后通过这个配置进行对服务器的请求即可了

 

 

三、那怎么样得到加密的包是哪个呢?

我们要从首页开始,先看我们点击“登录”按钮的时候调用了哪个js函数

 

 

 

 

我们可以先点击退出

重新的进入到这个页面

 

 

 

 

 

 

因为我们知道,在前端html代码中会给按钮button进行命名,之后在js函数里面会对这个button名字进行一定的识别和操作,所以我们要找到这个“登录按钮”的id

 

 

 

通过ctrl+f,输入login,就可以查到代码中对应的字段了,或者是搜索“登录”也是可以的

 

 

 

 

 

就可以找到我们想要的东西了

 

 

 

 

所以说这个“登录”button按钮的id就是login-btn

 

 

 

 

然后我们再次回到我们登录页面

在登录页面选择 js文件

 

 

 

 

 

 

 

 

 

输入login

一般软件的登录都会准备开一个login页面的,双击点进去

 

 

 

 

也就是我们登录loginjs处理文件了

Ctrl+f 搜索login,来找到我们登录的处理函数  ,或者有良心的程序员会谢注释,也可以通过“登录找到

 

 

 

 

 

 

 

 

 

 

 

 

这个单词encript是”压缩加密“的意思

所以我们猜测

 

 

 

 

这里是新建了一个加密对象

通过搜索可以知道

https://www.cnblogs.com/ZJTL/p/13650995.html

 

 

 

这个加密算法的话,需要一个key作为公钥

 

可见这个g_param.keys就是它的公钥,我们在这个js文件里面通过 ctrl+f

搜索这个公钥是什么

 

 

 

 

 

 

 

可以发现是这个东西

在看我们处理登录的函数代码可以发现,他是使用了这个对象里面的keys属性

 

 

 

 

 

 

 

所以我们就可以分析这句话,会发现,这里通过jquery语法,取前端代码idlogin-pr

 

 

 

 

Data-keys的数据,所以我们回到登录页面中

 

 

 

 

查看源代码

 

 

 

 

 

我们就找到了这个公钥了

但是这个公钥不能写死,每次结果都是不一样的,所以我们要实时的获得这个公钥

所以我们剩下的思路就是:

获得登录页面html前端代码,找到idlogin-pr里面的公钥

通过这个公钥把我们的密码进行加密,加密之后对易班服务器进行请求就行

 

所以说我们需要两个工具类,一个是帮我们拿到前端页面并进行解析来获得我们公钥的工具类,一个就是加密算法工具类,把我们获得的公钥对我们的密码进行加密

 

 

分别就是这两个工具类

然后我们编写主类

posted @ 2021-02-01 11:17  SCAU-gogocj  阅读(293)  评论(0编辑  收藏  举报