js算法逆向(逆向获取加密算法) 多体位断点 bp枚举爆破
前言
了解一下 浏览器为我们设置的好用的 js 选项
1、作用域 : 是指 服务器产生提供服务时所产生的相关的数据值
2、调用堆栈(zhan): 顾名思义 堆栈 就是把我们调用的从 第一步到最后一步全部堆起来
所以逻辑顺序会变化毕竟是先执行的js放到底部 后执行的放到顶部 这个就是调用堆栈
3、XHR(xml html req):是数据包的类型
多体位断点配合JS逆向算法
什么是逆向?就是正常的逻辑是从1+1开始到2 现在呢我们是知道 2 让我们寻找2是怎么得出来的这个就是逆向
1、第一个体位 全局搜索
在 S/C 模式中 如果前端有加密
那我们抓包进行payload测试的时候 就需要把数据 模拟 4 之前的进行一遍加密才能让 服务器解密从而让服务器看懂我们的输入
抓包模拟的就是 4 之前的 因为我们抓的数据包我们点击之后就是放包操作 所以一定程度上这个也是可以 保护服务器免受侵入
这个的实战地点我们选择某 通快递
账号输入一个假手机号 , 密码设置上123456
点击负载
数据全部加密了
说明前端是有js加密的 现在我们知道 2 需要去找 1+1 的逻辑
步骤 全局搜索的关键就在于看请求的url Vip/LoginResult
全局搜索这个 因为现在加密的包是这个 那我们去包之前寻找不就行了
控制器试一下 发现不行 说明缺少了东西 应该是加密逻辑不在这我们继续上翻
加上库直接拿下
2、我们发现第一体位太吃操作了
文件流程的断点
结合作用域 和 调用堆栈
什么是文件的流程说白了就是 调用的堆栈
发现跳转到了判断登录是否成功
我们在这个点打个断点 重新登录 我们看一下 作用域
这个时候我们直接去使用他的加密算法函数
发现直接成功了 ????什么情况啊
复制出来看 发现是加密的密钥和逻辑 这个时候断点的作用不就出现了 可以在某一个中断 算法逻辑从而被我们使用
当然我们还可以继续向下 找 login之上的操作
断ajax 看一下是否 会有其他的变化
只发现了数据的传输 没有别的变化
3、标签断点法
用法(这个不太建议 因为如果我们在标签处断点之后 其实后端的操作 只能一步一步去快进看 不能直接跳到关键处)
4、Xhr断点
有个前提就是这个必须是xhr数据包
可以通过网络抓包来获取 复制路径 Vip/LoginResult
发现加密的数据
练习 :交我算平台
依次演示
1、
发现参数 搜一下 发现 搜索没有加密的东西 直接只搜 login
太费眼了你妹的 还是不建议使用全局搜索 最好使用的就是 文件流程的断点
现在我发现 搜索 encrypt 和 JSEncrypt 也是不错的选择
使用断点就非常快了
记事本整理一下一条一条的执行就出来了
var r = new JSEncrypt
, o = 305c300d06092a864886f70d0101010500034b003048024100959684a0076fd2a8fc1589469cf8c95f16ef67490c519f4d274373f29cee64cf6a0db8ad8953122c5b3664e4a48acd34d9b95c0ae62a31be612632e1c49154db0203010001;
r.setPublicKey(o);
var s = r.encrypt('123');