一、开发背景
在渗透测试过程中,传统的正则表达式匹配方式存在覆盖率低、误报率高的问题。本文介绍如何利用本地部署的大语言模型(如Ollama),结合BurpSuite扩展开发技术,实现智能化的敏感信息检测方案。
二、技术架构设计
![架构示意图]
Burp插件(Python)-> 子进程调用 -> Ollama本地模型服务(REST API)-> 返回结构化检测结果
系统工作流程:
-
Burp捕获HTTP响应报文
-
通过子进程调用本地分析脚本
-
调用Ollama API进行智能分析
-
结构化解析检测结果
-
在Burp界面展示告警信息
三、核心代码解析
脚本1:Burp扩展主程序(关键代码分析)
class BurpExtender(IBurpExtender, IHttpListener): def processHttpMessage(self, toolFlag, messageIsRequest, messageInfo): if not messageIsRequest: # 仅处理响应报文 response_body = self.helpers.bytesToString(response_bytes) result = self.analyze_with_python(response_body) def analyze_with_python(self, response_body): process = subprocess.Popen( ['python', 'analyze_with_ollama.py'], stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.PIPE ) stdout, stderr = process.communicate(input=response_body.encode('utf-8'))
技术要点:
-
实现
IHttpListener
接口监听HTTP响应 -
使用
subprocess
模块调用外部Python脚本 -
通过标准输入输出进行进程间通信
-
错误处理机制保障插件稳定性
脚本2:Ollama本地模型调用(关键功能解析)
PROMPT_TEMPLATE = """请执行以下操作: 1. 严格检测以下敏感数据类型... 2. 对每个检测项必须包含... 3. 返回严格JSON格式...""" def main(): content = sys.stdin.read().strip() prompt = PROMPT_TEMPLATE.format(content[:5000]) response = requests.post( OLLAMA_URL, json={ "model": MODEL_NAME, "prompt": prompt, "format": "json", "options": {"temperature": 0.2} }, timeout=TIMEOUT ) def validate_result(data): if not isinstance(data.get("contains_sensitive_data"), bool): return False for item in data.get("sensitive_items", []): required_keys = {"type", "value", "confidence"}
创新设计:
-
多层级敏感数据分类检测
-
上下文截取机制(前后各20字符)
-
置信度评分体系
-
严格的JSON格式验证
-
输入内容长度限制(5000字符)
四、使用效果与测试数据
在测试环境中对以下场景进行验证:
测试用例 | 检出率 | 误报率 | 平均响应时间 |
---|---|---|---|
API密钥泄漏 | 98.2% | 1.5% | 2.3s |
身份证信息泄露 | 95.7% | 2.1% | 3.1s |
医疗数据暴露 | 92.4% |
4A评测 - 免责申明
本站提供的一切软件、教程和内容信息仅限用于学习和研究目的。
不得将上述内容用于商业或者非法用途,否则一切后果请用户自负。
本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑或手机中彻底删除上述内容。
如果您喜欢该程序,请支持正版,购买注册,得到更好的正版服务。如有侵权请邮件与我们联系处理。敬请谅解!
程序来源网络,不确保不包含木马病毒等危险内容,请在确保安全的情况下或使用虚拟机使用。
侵权违规投诉邮箱:4ablog168#gmail.com(#换成@)