前言:
本篇主要讲的是关于js的基础逆向解密和利用的技巧,在日常做项目时,我们会遇到登录处账号或密码被加密的情况,那有没有什么短平快的办法来解决这个问题呢?
寻找加密函数
1、当登录时遇到密码被加密传输可以尝试逆推出js加密过程加以利用
2、打开f12搜索password关键字,如果运气好的话,能直接定位到,如果定位到也没关系
3、尝试搜索login,仔细翻阅后如果还是没找到,可以接着向下看
4、接着搜索路径,定位到加密函数
/SysLoginManage/Login
断点调试
打上断点后再次登录后会在断点处暂停,点击步进,进入函数
从 jsencrypt 方法上来看,首先会调用 des 方法之后将返回值给到 stringToHex 进行二次编码,之后再将值返回给
des函数
之后将返回值给到stringToHex
之后再将加密之后的值返回给 pas 变量
工具简化利用流程
jsEncrypter https://github.com/c0ny1/jsEncrypter
phantomjs https://phantomjs.org/download.html
mac直接安装
brew install phantomjs
一般情况下只需要修改两个地方
1、将加密函数文件下载下来,并导入
2、修改函数调用
修改 phantomjs_server.js 文件
1、导入js文件
2、修改函数调用
在调试阶段可以看到加密password密码用的函数为 jsencrypt这个函数
将这个函数调用复制进去再修改一下
将jsEncrypter.0.3.2.jar导入burp
启用服务
phantomjs phantomjs_server.js
建立连接,测试成功
对加密字符串进行爆破
1、将数据包发送到intruder模块中,标记完变量后选择调用burp扩展
2、之后点击start进行爆破,可以看到密码都进行了加密