关于Burpscript
Burpscript是一款针对Burp Suite的增强工具,该工具可以给Burp Suite添加动态脚本功能,允许广大研究人员以Python或JavaScript语言编写脚本并对HTTP请求和响应进行操作。
功能介绍
1、Python 3和JavaScript支持;
2、支持从Proxy或其他工具(类如Repeater)修改请求和响应;
3、根据条件丢弃请求或响应,或将他们发送至Intercept标签页进行手动审计;
4、支持文件修改后进行脚本热重载;
5、快速启用/禁用脚本;
6、内置加密组件;
7、支持过滤DSL,以便确定插件的注册处理程序是否应处理请求或响应;
工具安装
首先,广大研究人员可以直接使用下列命令将该项目源码克隆至本地:
git clone https://github.com/ivision-research/burpscript.git
然后进入nix开发环境,直接使用项目提供的构建脚本构建工具代码即可:
$ nix develop # 以Python支持构建 $ ./build.sh # 以Python和JavaScript支持构建 $ ./build.sh --js --python
如果你不使用nix的话,则需要安装gradle,然后直接运行下列命令即可(可能会因gradle版本产生不同问题):
$ ./build.sh
生成的jar文件路径为“build/libs/burpscript-plugin-<version>.jar”,我们可以直接通过“Extensions -> Add”窗口将其安装到Burp Suite中。
Linux配置
将下列内容添加到/path/to/burp/BurpSuitePro.vmoptions文件中:
-Dpolyglotimpl.DisableClassPathIsolation=true
macOS配置
将下列内容添加到/Applications/Burp Suite Professional.app/Contents/vmoptions.txt文件中:
-Dpolyglotimpl.DisableClassPathIsolation=true
工具使用
Burpscript支持使用JavaScript和Python来开发脚本,添加脚本之后,当Burp Suite收到一个请求或响应时,Burpscript将会调用脚本中定义的制定命名处理函数,并在数据通过代理时允许脚本对其进行修改和审计。
Python使用
REQ_FILTER = """...""" RES_FILTER = """...""" def initialize(): print("Initialized Python script") def cleanup(): print("Cleaning up Python script") def on_request(req): print(f"{req.method()} - {req.url()}") return req.withBody("Modified") def on_response(res): print(f"{res.statusCode()} - {res.reasonPhrase()}")
JavaScript使用
.mjs文件后缀的脚本会以ES6模块处理,导出的处理函数如下:
export const RES_FILTER = "..." export const REQ_FILTER = "..." export function initialize() { console.log("Initialized the JavaScript module"); } export function cleanup() { console.log("Cleaning up JavaScript"); } export function onRequest(req) { console.log(`${req.method()} - ${req.url()}`) return req.withBody("Modified") } export function onResponse(res) { console.log(`${res.statusCode()} - ${res.reasonPhrase()}`); return res; }
.js文件后缀的脚本会以CommonJS模块处理,需使用module.exports导出处理函数:
module.exports = { RES_FILTER: "...", REQ_FILTER: "...", initialize: function() { ... }, cleanup: function() { ... }, onRequest: function(req) { ... }, onResponse: function(res) { ... } }
导入模块
该工具还允许脚本导入相同目录中的其他模块。
Python版本:
# common.py def do_something(): ...
# script.py from common import do_something
JavaScript版本(ES6):
// common.mjs export function doSomething() { ... }
// script.mjs import { doSomething } from './common.mjs'
许可证协议
本项目的开发与发布遵循MPL-2.0开源许可协议。
项目地址
Burpscript:【GitHub传送门】
参考资料
https://portswigger.net/burp/documentation/desktop/extensions/managing-extensions
https://www.graalvm.org/latest/reference-manual/js/Interoperability/
4A评测 - 免责申明
本站提供的一切软件、教程和内容信息仅限用于学习和研究目的。
不得将上述内容用于商业或者非法用途,否则一切后果请用户自负。
本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑或手机中彻底删除上述内容。
如果您喜欢该程序,请支持正版,购买注册,得到更好的正版服务。如有侵权请邮件与我们联系处理。敬请谅解!
程序来源网络,不确保不包含木马病毒等危险内容,请在确保安全的情况下或使用虚拟机使用。
侵权违规投诉邮箱:4ablog168#gmail.com(#换成@)