最新发现一款Burp插件Galaxy,可以做到在请求/响应在客户端/Burp/服务端流转时加入自己的处理逻辑,这可以用来实现请求/响应自动解密。但它有一些不足的地方,比如你必须抠出报文的加密逻辑,再用Galaxy实现解密逻辑才能达到目的,而有时客户端的代码比较复杂的情况下,完全抠出来加密逻辑再实现一遍过于复杂,而JsRpc可以做到与客户端通信,那如果把它们组合起来岂不是完美。
工具简介
Galaxy
可以做到在请求/响应在客户端/Burp/服务端流转时加入自己的处理逻辑,这可以用来实现请求/响应自动解密。详情见https://github.com/outlaws-bai/Galaxy
JsRpc
在网站的控制台新建一个WebScoket客户端链接到服务器通信,调用服务器的接口 > 服务器会发送信息给客户端 > 客户端接收到要执行的方法执行完js代码后把获得想要的内容发回给服务器 > 服务器接收到后再显示出来。详情见https://github.com/jxhczhl/JsRpc
实现
环境
环境靶场:
http://39.98.108.20:8085/
项目地址:
https://github.com/0ctDay/encrypt-decrypt-vuls/
JS逆向分析
网站数据包如下,数据进行加密处理,请求包的请求头内三个参数requestId、timestamp、sign缺一不可,改动任何一个都失效,且无法使用repeater重放数据
浏览器控制台定位相关js代码,其中关于请求头三个参数如下:
加密js代码如下,采用AES CBC key和iv都写在js内
js内打上断点