博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Python爬虫进阶之JS逆向混淆加密和AES加密的破解
阅读量:4129 次
发布时间:2019-05-25

本文共 1098 字,大约阅读时间需要 3 分钟。

圣诞节到了, 这不,我来送 "礼物" 了,X江酒店登录页面的参数加密破解。地址如下:

aHR0cHM6Ly9ob3RlbC5iZXN0d2Vob3RlbC5jb20vTmV3TG9naW4v

浏览器输入上方解密后的地址,F12 打开浏览器开发者工具,随意输入一个账号和密码。这里密码输入我一般用的 123456,抓包之后如下图:

抓包

有两个加密的参数 black_box 和 password.

这里提供两种定位加密代码的方法:1、search 栏搜索上述两个加密参数;2、这是个 xhr 的请求,可以通过下 xhr 断点来定位

通过 “black_box” 搜索,结果只有一个 JS 文件。

点击左下角的大括号美化 JS,定位到加密位置。打上断点

重发请求,请求会在断点处停下来. 这个 fmOpt.getinfo() 函数就是我们要找的 black_box,断点停下后,可以点进去

看到这些奇奇怪怪的变量,而且所有变量名看起来都长的差不多。你心里肯定在想,这是什么鬼。别慌!这就是 JS 混淆后的代码。直接拉到最上面,可以看到有很多变量的定义

所以这部分代码,我们是需要扣出来的。如果你觉得混淆的代码看起来非常的难受,你可以选择写个脚本用正则或者 replace() 来做替换,比如你可以在 Conlose 输出查看它的庐山真面目

当然,在这里不替换也可以执行。无论你选择了何种方法,前提条件都需要找到完整代码,不能有遗漏,否则执行不了。

我们主要扣取的代码是 oO00oo 对象中的 OOQo0o 函数。

所以里面定义变量或对象都需要扣取。扣完之后,通过调试来判断还缺少哪些变量,这里通过浏览器来进行调试,点击 sources,选择 +New snippet,粘贴上我们刚扣取的代码

文件名称可以随意命名,之后右键选择运行

运行完之后在下方 conlose 进行调试!一般都要经过反复调试添加代码后,才能正常运行。这里直接出结果了。

blackbox 参数完成了,接下来是 password ! 重发请求,断点继续停在了 blackbox 加密处!

可以看到,在对 black_box 加密之前,password 就已经完成加密了。所以我们根据调用栈往前找

前面两步就能找到 password 的加密代码,看到这个 encryptAES 有没有很熟悉,没错就是 AES 加密!遇到这种加密都不用扣代码...

好了,一切都解开了!密钥 n,偏移量 a,我们直接用 crypto-js 来执行!

完美!和抓包的结果一致,可以睡觉了..下次再见~

了解更多内容,烦请关注公众号 Python编程与实战

转载地址:http://qzzvi.baihongyu.com/

你可能感兴趣的文章
VUe+webpack构建单页router应用(一)
查看>>
Node.js-模块和包
查看>>
(python版)《剑指Offer》JZ01:二维数组中的查找
查看>>
Spring MVC中使用Thymeleaf模板引擎
查看>>
PHP 7 的五大新特性
查看>>
深入了解php底层机制
查看>>
PHP中的stdClass 【转】
查看>>
XHProf-php轻量级的性能分析工具
查看>>
OpenCV gpu模块样例注释:video_reader.cpp
查看>>
就在昨天,全球 42 亿 IPv4 地址宣告耗尽!
查看>>
如果你还不了解 RTC,那我强烈建议你看看这个!
查看>>
Mysql复制表以及复制数据库
查看>>
Linux下SVN客户端使用教程
查看>>
Linux分区方案
查看>>
如何使用 systemd 中的定时器
查看>>
git命令速查表
查看>>
linux进程监控和自动重启的简单实现
查看>>
OpenFeign学习(三):OpenFeign配置生成代理对象
查看>>
OpenFeign学习(四):OpenFeign的方法同步请求执行
查看>>
OpenFeign学习(五):OpenFeign请求结果处理及重试控制
查看>>