文章目录
- 1 默认Settings模式过滤的3大劣势
- 2 Bambdas(Script mode)的优势与版本说明
- 3 Bambdas在安全测试的核心用途
- 4 通用过滤范式脚本
- 5 站点精准过滤
- 5.1 国内站点
- 5.2 国外站点
- 6 脚本核心优势总结
1 默认Settings模式过滤的3大劣势
平时用Burp默认的Settings模式过滤,看似简单,实际有明显短板:
- 规则死板:只能点选固定条件,像域名带路径、混合大小写、带参数的静态文件这类复杂场景,根本筛不准。
- 逻辑受限:不支持“与、或、非”组合判断,想同时筛域名、状态码、排除静态资源,做不到。
- 无法复用:换项目就得重新配,配置不能导出保存,效率低。
2 Bambdas(Script mode)的优势与版本说明
Bambdas即Script mode,是Burp Suite2023.10.3版本正式引入的轻量级脚本功能,基于Java语法,直接在Burp界面写代码自定义逻辑,不用装插件、不用搭开发环境。
官方定义:Bambdas是可复用的Java脚本,能精细调整Burp功能,用于自定义过滤、匹配替换、新增列等场景。
官方文档:https://portswigger.net/burp/documentation/desktop/extend-burp/bambdas
相比Settings模式,优势很明显:
- 逻辑自由:支持if/for/异常处理,任何复杂过滤规则都能实现。
- 精准灵活:域名、路径、参数、请求头、响应码全能控,大小写自动统一、带参静态文件也能精准排除。
- 可配置可复用:脚本集中管理,能导出保存,换项目直接导入,一次写好长期用。
- 无额外成本:内置功能,打开就能写,不占额外资源,运行流畅。
3 Bambdas在安全测试的核心用途
Bambdas主要用在3个场景,大幅提升测试效率:
- 流量过滤:Proxy历史、站点地图、日志里,精准筛目标域名、状态码,排除静态文件、垃圾请求。
- 自定义展示:给HTTP历史新增列,比如显示请求耗时、特定header,方便快速定位关键包。
- 智能替换:自动修改请求/响应,比如批量删无用请求头、替换敏感参数,适配复杂测试场景。
而且在 Burpsuite 中编写 Bambdas 脚本自带代码提示,非常友好,便于上手。
凡是Burp默认功能做不到的流量处理,用Bambdas都能解决,是安全测试必备的效率工具。
4 通用过滤范式脚本
下面是通用Bambdas过滤脚本,所有配置集中在顶部,修改方便,覆盖域名、状态码、静态资源、请求方法过滤,适配90%以上测试场景。
需要添加子域名白名单、过滤资源请求等,可以自己随时修改,一个脚本方便管理;其他功能可自行拓展。
// 域名白名单(支持 * 通配符,留空数组 = 不限制所有站点)// 例子:{"*.edu.cn", "*.gov.cn", "target.com"}String[]allowedDomains={// 比如 "*.baidu.com"};// 配置保留的响应码(留空数组 = 不限制所有响应码)// 例子:{200, 302, 403, 404, 500}int[]allowedStatusCodes={// 比如 200};// 静态资源后缀(留空数组 = 不过滤静态资源)String[]staticExtensions={".js",".css",".png",".jpg",".jpeg",".gif",".ico",".woff",".woff2",".ttf",".svg",".map"};// 需要过滤的图片/静态资源 MIME 类型String[]blockedMimeTypes={"image/jpeg","image/jpg","image/png","image/gif","image/svg+xml","image/webp","image/x-icon"};// ==========================================================================booleanhasResp=requestResponse.hasResponse();// 域名过滤(支持通配符 *)if(allowedDomains.length>0){try{Stringhost=requestResponse.request().header("host").value().split(":")[0].toLowerCase();booleandomainMatch=false;for(Stringpattern:allowedDomains){pattern=pattern.toLowerCase();if(pattern.startsWith("*.")){Stringroot=pattern.substring(2);if(host.equals(root)||host.endsWith("."+root)){domainMatch=true;break;}}else{if(host.equals(pattern)){domainMatch=true;break;}}}if(!domainMatch)returnfalse;}catch(Exceptione){returnfalse;}}// 响应码过滤if(allowedStatusCodes.length>0){if(!hasResp)returnfalse;intcode=requestResponse.response().statusCode();booleancodeMatch=false;for(intc:allowedStatusCodes){if(code==c){codeMatch=true;break;}}if(!codeMatch)returnfalse;}// 新增:过滤 MIME 类型为图片的请求(无后缀图片也能拦截)if(hasResp){StringcontentType=requestResponse.response().header("Content-Type")!=null?requestResponse.response().header("Content-Type").value().toLowerCase():"";for(StringmimeType:blockedMimeTypes){if(contentType.contains(mimeType)){returnfalse;}}}// 静态资源过滤Stringurl=requestResponse.request().url().toString().toLowerCase();booleanisStatic=false;for(Stringext:staticExtensions){if(url.endsWith(ext)||url.contains(ext+"?")){isStatic=true;break;}}if(isStatic)returnfalse;// 请求方法过滤Stringmethod=requestResponse.request().method();if(method.equals("OPTIONS")||method.equals("HEAD")||method.equals("TRACE")||method.equals("CONNECT")){returnfalse;}returntrue;以百度为示例,过滤前:
操作步骤
先选择Script mode选项:
添加脚本:右上方可以点击保持、导入操作,点击Apply & close应用。
过滤后:
5 站点精准过滤
5.1 国内站点
测试目标:某高校edu.cn站点,只保留200/403/404状态码,排除静态资源、垃圾请求。
- 打开Burp Proxy → HTTP history → 切换到Bambda mode。
- 复制上面脚本,修改allowedDomains为
{"*.edu.cn"},allowedStatusCodes为{200,403,404}。 - 点击运行,脚本自动生效:
- 自动统一域名大小写,xxx.EDU.CN、Xxx.edu.cn都能匹配。
- 精准筛edu.cn/admin/login、edu.cn/api/user等带路径的请求,不遗漏。
- 自动排除.js?version=1、.css?m=2等带参静态文件。
- 过滤OPTIONS/HEAD等垃圾方法,历史里只剩有效测试包。
5.2 国外站点
测试目标:某国外企业站点,只保留200状态码,排除所有静态资源。
- 脚本配置:allowedDomains留空(不限制域名),
allowedStatusCodes={200},静态后缀默认。 - 运行后:自动保留所有站点200状态码请求,排除图片、样式、字体等静态文件。
- 优势:不用手动配多个规则,脚本自动处理所有复杂场景,跨项目直接复用。
6 脚本核心优势总结
- 配置极强:所有参数集中顶部,改3个数组就能适配不同场景。
- 精准稳定:支持通配符、大小写统一、异常捕获,不漏包、不误拦。
- 通用高效:教育网、企业站、渗透测试通用,一次写好永久用。
- 简单易学:Java基础语法,不用学复杂开发,复制就能改。
安全测试别再用死板的Settings模式,这个Bambdas通用脚本,能帮你快速过滤杂包,把时间花在漏洞挖掘上。
⚠️本博文所涉安全渗透测试技术、方法及案例,仅用于网络安全技术研究与合规性交流,旨在提升读者的安全防护意识与技术能力。任何个人或组织在使用相关内容前,必须获得目标网络 / 系统所有者的明确且书面授权,严禁用于未经授权的网络探测、漏洞利用、数据获取等非法行为。