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

抓包

网站如下:www.airchina.com.cn/www/jsp/use… 下面是登录的抓包:

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

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

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

搜索结果如下:

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

猜测应该是 RSA 加密

如果你依然在编程的世界里迷茫,可以加入我们的Python学习扣qun:784758214,看看前辈们是如何学习的!交流经验!自己是一名高级python开发工程师,从基础的python脚本到web开发、爬虫、django、数据挖掘等,零基础到项目实战的资料都有整理。送给每一位python的小伙伴!分享一些学习的方法和需要注意的小细节,点击加入我们的 python学习者聚集地

分析

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

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爬虫,PYthon,编程语言)