Brida介绍
Brida是基于Frida开发的Burp插件。
Brida使用了Frida的核心库,并在此基础上开发了一些高级功能,包括动态调试、数据拦截和修改等。Brida通过Frida实现了与目标应用程序的交互,并将其与Burp Suite进行了集成,从而扩展了Burp的功能,使得渗透测试人员能够更加方便地进行应用程序的渗透测试。
因此,可以说Brida是Frida的一个扩展,它为Frida提供了一个友好的用户界面和更加高级的功能,使得渗透测试人员能够更加方便地使用Frida进行应用程序的分析和修改。
官方文档:https://github.com/federicodotta/Brida/wiki
环境配置
安装文档:https://github.com/federicodotta/Brida/wiki/Installation
需要的环境配置
# 实现跨进程通信
pip3 install Pyro4
# 安装frida-compile
npm install frida-compile -g
burp安装插件
在Brida
面板中,填写相应的信息,然后运行即可,如下图都是running
就说明OK了。
使用
编写brida.js
然后重新编译,编译后在Debug export
中,测试函数是否正常即可。
实战
核心就是找到加密算法,然后编写frida的js脚本,通过
rpc.exports
函数将需要远程调用的函数暴露出去
编写脚本
这里我找到了加密算法,编写了js脚本如下,编写完成后一定要记得保存文件。
调用算法前,记得重新编译一次,然后在debug界面测试一下是否正常。
自动替换数据包
在Custom plugins
子面板中编辑,如下,插件类型是IHttpListener
,根据情况看需要正则表达式还是全部替换。
curl测试,可见uid已经被自动替换成加密后的。
加入右键菜单
插件类型是IContextMenu
,
然后在右键的extensions
菜单中,就可以直接调用来修改了。
异常问题
问题1
Error: entrypoint must be inside the project root
解决方案:
查了好久找不到资料,瞎搞发现第一种解决办法如下,进入到js文件的目录编译就可以了(新问题就是以后每次修改brida.js文件后,都需要到js文件目录手动编译)。
cd /Users/d4m1ts/Downloads/
"/Users/d4m1ts/.nvm/versions/node/v14.19.3/bin/frida-compile" -o "/Users/d4m1ts/Downloads/bridaGeneratedCompiledOutput.js" "/Users/d4m1ts/Downloads/brida.js"
又研究了一下,这个问题产生的原因,就是要求执行frida-compile
命令的时候必须在存放brida.js
文件的目录中。
所以第二种一劳永逸的办法,就是将brida.js
文件放到burp的运行目录中去,这样可以保证每次编译都在存放brida.js
的目录下进行。
/Applications/Burp Suite Professional.app/Contents/Resources/app/
问题2
env: node: No such file or directory
解决方案:
sudo launchctl config user path $PATH