Python爬虫进阶之JS逆向国航登录

分享另一个破解JS登录的案例,源码地址https://github.com/GoJerry/airChinaJsCrack

抓包

网站如下:http://www.airchina.com.cn/www/jsp/userManager/login.jsp
下面是登录的抓包:

Python爬虫进阶之JS逆向国航登录_第1张图片

明显 userName 和 password 这两个参数被加密了。
全局搜索参数 userType 或者 upassword。因为一般是根据输入框的 id 标签取值,然后做加密!

Python爬虫进阶之JS逆向国航登录_第2张图片
id标签

搜索结果如下:

Python爬虫进阶之JS逆向国航登录_第3张图片
结果

猜测应该是 RSA 加密

分析

在加密的位置打上断点,重发请求:

Python爬虫进阶之JS逆向国航登录_第4张图片

其中 RSAUtils 是一个对象,encryptedString 是该对象中的函数,所以我们先将这个对象的定义找出来。
点击该函数进入,可以发现 RSAUtils 的定义及其相应的函数都在这个 JS 文件中,全部复制下来吧:

Python爬虫进阶之JS逆向国航登录_第5张图片

注意在将 userName 和 password 加密之前执行了 bodyRSA() 函数,所以也将相应的 JS 代码复制下来
最终 JS 文件内容如下:

Python爬虫进阶之JS逆向国航登录_第6张图片

最后,自己写个 JS 函数,执行一下,并和抓包的数据进行对比验证结果

Python爬虫进阶之JS逆向国航登录_第7张图片

password 加密结果一致!这个破解比较简单,适合给入门的朋友用来练手。来帮忙点个好看吧~~

总结

JS 逆向需要耐心调试,同时要理清思路,调试过程中发现的加密过程要记录下来,以免后续再发费时间寻找。同时需要大胆的去假设,多尝试。

`

你可能感兴趣的:(Python爬虫进阶之JS逆向国航登录)