基于本地大模型的敏感信息检测的burp插件开发

2025-02-06 1 0

一、开发背景

在渗透测试过程中,传统的正则表达式匹配方式存在覆盖率低、误报率高的问题。本文介绍如何利用本地部署的大语言模型(如Ollama),结合BurpSuite扩展开发技术,实现智能化的敏感信息检测方案。

二、技术架构设计

![架构示意图]
Burp插件(Python)-> 子进程调用 -> Ollama本地模型服务(REST API)-> 返回结构化检测结果

系统工作流程:

  1. Burp捕获HTTP响应报文

  2. 通过子进程调用本地分析脚本

  3. 调用Ollama API进行智能分析

  4. 结构化解析检测结果

  5. 在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'))

技术要点:

  1. 实现IHttpListener接口监听HTTP响应

  2. 使用subprocess模块调用外部Python脚本

  3. 通过标准输入输出进行进程间通信

  4. 错误处理机制保障插件稳定性

脚本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"}

创新设计:

  1. 多层级敏感数据分类检测

  2. 上下文截取机制(前后各20字符)

  3. 置信度评分体系

  4. 严格的JSON格式验证

  5. 输入内容长度限制(5000字符)

四、使用效果与测试数据

在测试环境中对以下场景进行验证:

测试用例 检出率 误报率 平均响应时间
API密钥泄漏 98.2% 1.5% 2.3s
身份证信息泄露 95.7% 2.1% 3.1s
医疗数据暴露 92.4%

4A评测 - 免责申明

本站提供的一切软件、教程和内容信息仅限用于学习和研究目的。

不得将上述内容用于商业或者非法用途,否则一切后果请用户自负。

本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑或手机中彻底删除上述内容。

如果您喜欢该程序,请支持正版,购买注册,得到更好的正版服务。如有侵权请邮件与我们联系处理。敬请谅解!

程序来源网络,不确保不包含木马病毒等危险内容,请在确保安全的情况下或使用虚拟机使用。

侵权违规投诉邮箱:4ablog168#gmail.com(#换成@)

相关文章

flaskpython代码审计思路及实战记录
甲方视角下的供应链安全思考
新型ValleyRAT恶意软件通过伪造Chrome下载传播
记一次邮件钓鱼实例分析
恶意Go包利用模块镜像缓存实现持久远程访问
疯狂邪恶团伙利用StealC、AMOS和Angel Drainer恶意软件瞄准加密货币

发布评论