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 安装步骤
-
克隆仓库:
git clone https://github.com/jweny/pocassist.git -
配置数据库:
mysql -u root -p < docs/sql/pocassist.sql -
修改配置文件
conf/app.ini:[database] Type = mysql User = root Password = yourpassword Host = 127.0.0.1:3306 Name = pocassist -
编译运行:
go build -o pocassist main.go ./pocassist
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格式:
name: example-poc transport: http rules: r0: request: method: GET path: /vulnerable-path expression: response.status == 200 && response.body.bcontains(b'vulnerable string') -
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 常见问题
-
数据库连接失败:
- 检查
conf/app.ini中的数据库配置 - 确认MySQL服务已启动
- 验证用户名密码是否正确
- 检查
-
POC测试无结果:
- 检查目标是否可达
- 验证POC规则是否正确
- 查看日志文件
runtime/logs/app.log
-
性能低下:
- 增加并发数设置
- 检查网络延迟
- 优化复杂POC的匹配规则
8. 扩展开发
8.1 插件开发
pocassist 支持通过插件扩展功能:
-
在
plugins目录下创建新插件 -
实现
Plugin接口:type Plugin interface { Name() string Exec(ctx *Context) (bool, error) } -
注册插件到系统
8.2 二次开发
- 修改前端:
web/目录下Vue.js代码 - 修改后端:主要业务逻辑在
internal/目录 - 自定义配置:
conf/app.ini
9. 相关资源
- 官方GitHub仓库:https://github.com/jweny/pocassist
- 问题追踪:GitHub Issues
- 社区支持:奇安信攻防社区
以上为pocassist框架的详细使用指南,涵盖了从安装部署到高级使用的各个方面。如需更深入的技术细节,建议参考项目文档和源代码。