pocassist — 全新的开源在线poc测试框架
字数 1726 2025-08-10 00:24:04

pocassist - 开源在线POC测试框架使用指南

1. 项目概述

pocassist 是一个用 Go (Golang) 编写的开源漏洞测试框架,主要功能包括:

  • 在线编辑 POC(Proof of Concept)
  • POC 管理
  • 漏洞测试
  • 无需编写代码即可实现 POC 逻辑
  • 提供 Web 界面进行交互

2. 核心特性

2.1 POC 管理

  • 支持在线创建、编辑、删除 POC
  • POC 版本控制
  • 分类管理(如按漏洞类型、应用分类等)

2.2 测试功能

  • 单目标测试
  • 批量测试
  • 自定义请求参数
  • 结果验证与展示

2.3 无代码实现

  • 通过 Web 界面配置 POC 逻辑
  • 可视化规则设置
  • 无需编写代码即可创建复杂检测逻辑

3. 安装部署

3.1 环境要求

  • Go 1.13+ 环境
  • MySQL 数据库
  • Redis(可选,用于缓存)

3.2 安装步骤

  1. 克隆仓库:

    git clone https://github.com/jweny/pocassist.git
    
  2. 配置数据库:

    mysql -u root -p < docs/sql/pocassist.sql
    
  3. 修改配置文件 conf/app.ini

    [database]
    Type = mysql
    User = root
    Password = yourpassword
    Host = 127.0.0.1:3306
    Name = pocassist
    
  4. 编译运行:

    go build -o pocassist main.go
    ./pocassist
    

4. 使用教程

4.1 Web 界面访问

默认访问地址:http://localhost:8081

4.2 POC 创建流程

  1. 登录系统后进入 "POC管理" 页面

  2. 点击 "新建POC" 按钮

  3. 填写基本信息:

    • POC名称
    • 风险等级(高/中/低)
    • 漏洞类型(如SQL注入、RCE等)
    • 影响产品
  4. 配置检测规则:

    • 请求方法(GET/POST等)
    • 请求路径
    • 请求头
    • 请求体(POST时)
    • 匹配规则(响应内容、状态码等)
  5. 保存并测试

4.3 漏洞测试方法

  1. 单目标测试:

    • 在 "漏洞测试" 页面输入目标URL
    • 选择要测试的POC
    • 点击 "开始测试"
  2. 批量测试:

    • 准备目标URL列表文件(每行一个URL)
    • 上传文件并选择POC
    • 设置并发数
    • 开始测试

5. 高级功能

5.1 POC 编写规范

pocassist 支持两种POC格式:

  1. YAML格式:

    name: example-poc
    transport: http
    rules:
      r0:
        request:
          method: GET
          path: /vulnerable-path
        expression: response.status == 200 && response.body.bcontains(b'vulnerable string')
    
  2. JSON格式:

    {
      "name": "example-poc",
      "transport": "http",
      "rules": {
        "r0": {
          "request": {
            "method": "GET",
            "path": "/vulnerable-path"
          },
          "expression": "response.status == 200 && response.body.bcontains(b'vulnerable string')"
        }
      }
    }
    

5.2 表达式语法

pocassist 使用类Python的表达式语法进行规则匹配:

  • 状态码匹配:response.status == 200
  • 内容包含:response.body.bcontains(b'match string')
  • 正则匹配:response.body.bmatches(b'regex pattern')
  • 逻辑运算:&&, ||, !

5.3 API 接口

pocassist 提供RESTful API供程序调用:

  • POST /api/v1/poc/test - 执行POC测试
  • GET /api/v1/poc/list - 获取POC列表
  • POST /api/v1/poc/create - 创建新POC

6. 最佳实践

6.1 性能优化

  • 合理设置并发数(建议50-200)
  • 使用Redis缓存频繁访问的数据
  • 对批量测试的目标进行预处理(去重、有效性验证)

6.2 安全注意事项

  • 测试前获取授权
  • 避免在生产环境直接测试
  • 限制可访问的IP范围
  • 定期备份POC数据库

7. 故障排除

7.1 常见问题

  1. 数据库连接失败

    • 检查conf/app.ini中的数据库配置
    • 确认MySQL服务已启动
    • 验证用户名密码是否正确
  2. POC测试无结果

    • 检查目标是否可达
    • 验证POC规则是否正确
    • 查看日志文件runtime/logs/app.log
  3. 性能低下

    • 增加并发数设置
    • 检查网络延迟
    • 优化复杂POC的匹配规则

8. 扩展开发

8.1 插件开发

pocassist 支持通过插件扩展功能:

  1. plugins目录下创建新插件

  2. 实现Plugin接口:

    type Plugin interface {
        Name() string
        Exec(ctx *Context) (bool, error)
    }
    
  3. 注册插件到系统

8.2 二次开发

  • 修改前端:web/目录下Vue.js代码
  • 修改后端:主要业务逻辑在internal/目录
  • 自定义配置:conf/app.ini

9. 相关资源

  • 官方GitHub仓库:https://github.com/jweny/pocassist
  • 问题追踪:GitHub Issues
  • 社区支持:奇安信攻防社区

以上为pocassist框架的详细使用指南,涵盖了从安装部署到高级使用的各个方面。如需更深入的技术细节,建议参考项目文档和源代码。

pocassist - 开源在线POC测试框架使用指南 1. 项目概述 pocassist 是一个用 Go (Golang) 编写的开源漏洞测试框架,主要功能包括: 在线编辑 POC(Proof of Concept) POC 管理 漏洞测试 无需编写代码即可实现 POC 逻辑 提供 Web 界面进行交互 2. 核心特性 2.1 POC 管理 支持在线创建、编辑、删除 POC POC 版本控制 分类管理(如按漏洞类型、应用分类等) 2.2 测试功能 单目标测试 批量测试 自定义请求参数 结果验证与展示 2.3 无代码实现 通过 Web 界面配置 POC 逻辑 可视化规则设置 无需编写代码即可创建复杂检测逻辑 3. 安装部署 3.1 环境要求 Go 1.13+ 环境 MySQL 数据库 Redis(可选,用于缓存) 3.2 安装步骤 克隆仓库: 配置数据库: 修改配置文件 conf/app.ini : 编译运行: 4. 使用教程 4.1 Web 界面访问 默认访问地址: http://localhost:8081 4.2 POC 创建流程 登录系统后进入 "POC管理" 页面 点击 "新建POC" 按钮 填写基本信息: POC名称 风险等级(高/中/低) 漏洞类型(如SQL注入、RCE等) 影响产品 配置检测规则: 请求方法(GET/POST等) 请求路径 请求头 请求体(POST时) 匹配规则(响应内容、状态码等) 保存并测试 4.3 漏洞测试方法 单目标测试: 在 "漏洞测试" 页面输入目标URL 选择要测试的POC 点击 "开始测试" 批量测试: 准备目标URL列表文件(每行一个URL) 上传文件并选择POC 设置并发数 开始测试 5. 高级功能 5.1 POC 编写规范 pocassist 支持两种POC格式: YAML格式: JSON格式: 5.2 表达式语法 pocassist 使用类Python的表达式语法进行规则匹配: 状态码匹配: response.status == 200 内容包含: response.body.bcontains(b'match string') 正则匹配: response.body.bmatches(b'regex pattern') 逻辑运算: && , || , ! 5.3 API 接口 pocassist 提供RESTful API供程序调用: POST /api/v1/poc/test - 执行POC测试 GET /api/v1/poc/list - 获取POC列表 POST /api/v1/poc/create - 创建新POC 6. 最佳实践 6.1 性能优化 合理设置并发数(建议50-200) 使用Redis缓存频繁访问的数据 对批量测试的目标进行预处理(去重、有效性验证) 6.2 安全注意事项 测试前获取授权 避免在生产环境直接测试 限制可访问的IP范围 定期备份POC数据库 7. 故障排除 7.1 常见问题 数据库连接失败 : 检查 conf/app.ini 中的数据库配置 确认MySQL服务已启动 验证用户名密码是否正确 POC测试无结果 : 检查目标是否可达 验证POC规则是否正确 查看日志文件 runtime/logs/app.log 性能低下 : 增加并发数设置 检查网络延迟 优化复杂POC的匹配规则 8. 扩展开发 8.1 插件开发 pocassist 支持通过插件扩展功能: 在 plugins 目录下创建新插件 实现 Plugin 接口: 注册插件到系统 8.2 二次开发 修改前端: web/ 目录下Vue.js代码 修改后端:主要业务逻辑在 internal/ 目录 自定义配置: conf/app.ini 9. 相关资源 官方GitHub仓库:https://github.com/jweny/pocassist 问题追踪:GitHub Issues 社区支持:奇安信攻防社区 以上为pocassist框架的详细使用指南,涵盖了从安装部署到高级使用的各个方面。如需更深入的技术细节,建议参考项目文档和源代码。