用途:对 SAST 发现、静态确认为真阳性(TP)的漏洞做动态复现,在运行实例上验证并记录结果。输入:project-root(可选,默认当前目录,产物存放于 <project-root>/.opentaint/)、language(必填)、finding(必填,指向 .opentaint/tracking/findings/<name>.yaml)、base-url(可选,应用已在运行时直接使用,否则构建并启动)。
用法流程:一,启动应用。复用 base-url,否则按项目方式构建启动,等待监听(healthy)并记录 base URL;需要 DB、消息队列、缓存等依赖时用一次 docker compose、共享网络统一拉起,并登记为一个 compose 条目;实例绑定回环地址,登记到 registry 以便后续回收。二,将 finding 映射为实际请求:从源码位置找到入口(路由与方法)以及承载污点输入的 param/header/body 字段,并构造可达 sink 的 payload,资料给出了 SQL 注入、命令注入、路径穿越、XSS、SSRF、XXE 的常见形态。三,编写并运行 PoC 脚本:.opentaint/pocs/<name>.py,自包含(含认证、初始化状态),发送请求并断言可观察证据,可重复运行、自校验;确认需可观察证据,如返回数据、文件内容、命令输出、时间延迟、带外回调、暴露注入的错误等。四,记录结果:confirmed(脚本触发并证明所述漏洞,poc 置 confirmed,notes 描述可用序列:准备→请求→观察到的证据)或 failed(多次尝试仍未确认,或应用/路由不可达,poc 置 failed,保存脚本并记录尝试变体与未触发原因)。
产物:.opentaint/pocs/<name>.py(无论是否确认都保留)、更新后的 finding yaml、.opentaint/tracking/poc-servers.yaml(登记已启动实例,保持运行以供复用)。输出摘要含结果与启动时的 base URL。约束:实例只绑定回环或测试真正需要的特定 IP,不得用 0.0.0.0 或公网接口;不要停止自己启动的实例,必须登记,由 orchestrator 负责回收;结果只写入 finding 文件,不得写 .opentaint/vulnerabilities.md;failed 不等于误报,不得翻转 verdict。其他细节(官方说明、收费等)暂未提供。