js逆向加密五邑大学教务系统密码AES实现模拟登录(仅供参考)

        最近下班无聊,就看了一下之前写的教务系统模拟登录代码(python-爬虫),整体逻辑大概自己总结了一下:

        1.请求验证码图片。

        2.对输入的密码进行加密。

        3.封装账号,密码,验证码,发送post请求

但是在第2步的时候对输入的密码进行加密的过程中,我使用的方法是:

from Crypto.Cipher import AES

没错,就是调用python-Crypto.Cipher库中的AES,进行对密码进行加密处理,但是最近在工作上看到几个网站是带有js加密的进行加密处理,后面我就用到了js逆向解密解决了模拟登录的问题,后来我就想到能不能直接利用js逆向解决教务系统的AES密码加密操作,于是开始了实践:

一,网站抓包,分析请求

js逆向加密五邑大学教务系统密码AES实现模拟登录(仅供参考)_第1张图片

js逆向加密五邑大学教务系统密码AES实现模拟登录(仅供参考)_第2张图片

        我们可以看到其登录发起的请求是post请求(简注:需要带参数的请求),于是我们可以想到可以用post发送相应的参数进行模拟登录。

二,js逆向加密密码

1,基于上面的过程我们看到了上面的参数数值:

{

        account:

        password:

   verifycode:

}

通过分析,我们可以知道其参数只用对密码加密,其他数值都是明文,于是我们就可以对其进行加密:

================================重点部分=================================

首先,我们通过参数pwd进行索引,找到源代码中对密码加密的地方:

js逆向加密五邑大学教务系统密码AES实现模拟登录(仅供参考)_第3张图片

于是我们找到了js加密部分,于是我们打个断点找到其加密代码。

js逆向加密五邑大学教务系统密码AES实现模拟登录(仅供参考)_第4张图片

 根据其打的断点,我们可以看到,其关联的js加密即可跳转

js逆向加密五邑大学教务系统密码AES实现模拟登录(仅供参考)_第5张图片

我们看到在我们打的断点前,其密码是明文,于是我们知道在下面这段代码中就是对密码加密的过程,于是我们进入到内部。

js逆向加密五邑大学教务系统密码AES实现模拟登录(仅供参考)_第6张图片

        其js加密涉及到encrypt函数,看到这个代码我们就比较熟悉了,在加密时候我们就涉及到了这个函数,于是我们知道,这个函数一定涉及加密过程,于是将这个代码进行调试

。。。。。。。。按照上述断点方法,我们就可以写出我们的js调试代码了(里面有很多坑,本教程仅提供思路)

        经过多个断点以及分析,我们得到最终的js代码:

js逆向加密五邑大学教务系统密码AES实现模拟登录(仅供参考)_第7张图片

进行返回 我们的也得到了加密数据,我们对js代码进行封装,于是得到:

进行写入wuy.js,放入将要写发送网络请求的同一文件夹下。

 三,发送网络请求

 1,创建一个js类,将js代码功能封装:

js逆向加密五邑大学教务系统密码AES实现模拟登录(仅供参考)_第8张图片

封装好js代码之后,我们可以进行发送网络请求了

js逆向加密五邑大学教务系统密码AES实现模拟登录(仅供参考)_第9张图片

以上代码是测试代码,将验证码图片先获取,手动输入验证码及密码之后,密码加密措施利用封装好的类进行调用。最后,我们运行一次,可以看到教务系统返回我们的信息:

js逆向加密五邑大学教务系统密码AES实现模拟登录(仅供参考)_第10张图片

好了,大功告成!!!,可以抓取教务系统的各种数据的抓取了。

(以上教程仅供技术学习,不得用于其他用途。)

 若有任何问题,可联系本人

你可能感兴趣的:(爬虫,爬虫,python,javascript)