offensive-techniques/oracle-verification-technique/SKILL.md
Machine-oracle verification for security findings: promote a finding to VERIFIED only when a named oracle re-runs the exploit N/N against the live target AND a negative control fails on a safe surface, then package a portable proof capsule the client can replay. Use before reporting web/API/auth findings, when triaging scanner output (nuclei/nikto/zap/sqlmap), when an LLM or sub-agent asserts a vulnerability without proof, or when a report must separate proven findings from candidates. Tool-agnostic; pairs with web-exploit, vuln-exploit, and report-generation techniques.
npx skillsauth add aeondave/malskill oracle-verification-techniqueInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Goal: A finding is a candidate until a named machine oracle reproduces it against the live target N-out-of-N times AND a negative control fails on a safe surface. Only then is it VERIFIED, shipped with a proof capsule anyone can replay. An LLM assertion, a scanner hit, or a single lucky exploit is never proof on its own.
Do not use this to find bugs — it only decides whether a suspected bug is real. Discovery stays with the web-exploit / vuln-exploit / recon techniques; this gates their output.
No verdict without a named oracle. A
VERIFIEDbadge that cannot name the oracle that earned it is rejected and downgraded tocandidate. The model coordinates; the oracle decides what is true.
Encode this as a hard check in your workflow and in report generation, not as a hope.
For each candidate finding, run these gates in order. Fail any gate → stay candidate.
Pick a deterministic oracle for the vuln class — a check that returns a machine-decidable positive/negative from the target's actual response, not a pattern match on a scanner label. If no oracle exists for the class, the finding cannot be VERIFIED (report it as candidate — no oracle). Load references/oracle-catalog.md for per-class oracles and their positive signals.
Re-execute the exploit recipe N times (default N=3) against the real target. Every run must produce the positive signal. Any miss → candidate (flaky / not reliably exploitable). Fresh session/token each run where auth is involved — a replay that only works with a stale cached token is not proven.
Run the same oracle against a surface that must be safe: a non-vulnerable endpoint, a patched route, a benign parameter value, or a control payload that should do nothing. The control must fail (no positive signal). If the oracle fires on the safe surface too, the oracle is broken or the signal is ambient — the finding is not proven. This is what stops false positives; do not skip it.
A bare signal (an out-of-band callback, a reflected marker) proves reachability, not harm. Rate reachability-only findings medium until an impact oracle reproduces real impact (data read, auth bypass, RCE). Do not assume impact from a probe.
Emit a portable, replayable capsule (see references/proof-capsule.md): oracle name, exact recipe (request/command + payload), positive signal, the N/N run log, the failing control, and a one-command replay. The client/dev replays it against the live target without trusting your tool. Multi-step chains bundle every proven hop into one capsule.
Report each finding with an explicit status:
VERIFIED — oracle named, N/N passed, control failed, capsule attached.candidate — suspected but not (yet) proven; state which gate it failed.candidate — no oracle — no oracle exists for this class; manual verification required.Never let a scanner-labeled or LLM-asserted finding reach the VERIFIED column.
offensive-techniques/web-exploit-technique/SKILL.md — supplies the exploit recipes this skill gates.offensive-techniques/vuln-exploit-technique/SKILL.md — impact validation for the impact oracle (gate 4).offensive-techniques/report-generation-technique/SKILL.md — consumes the VERIFIED/candidate split and the capsules.evidence-before-claims and verification-before-completion — this skill is their enforced, machine-checked form for findings.references/oracle-catalog.md — per-vuln-class oracles: positive signal, recipe skeleton, and the negative control to run. Load when choosing or building an oracle (gate 1–3).references/proof-capsule.md — the proof-capsule schema and replay contract. Load when packaging a VERIFIED finding (gate 5).development
Auth/lab ref: Unicorn Engine CPU-only emulation for shellcode, decryptors, custom VM handlers, instruction tracing, memory hooks, and register-level experiments.
development
Auth/lab ref: Renode board and SoC simulation for MCU/RTOS firmware, UART/GPIO/peripheral modeling, GDB remote debugging, REPL platforms, and RESC scripts.
development
Auth/lab ref: Qiling OS-layer binary emulation for PE/ELF/Mach-O/UEFI/shellcode with rootfs, syscall/API hooks, filesystem mapping, and runtime patching.
databases
Auth/lab ref: QEMU user-mode and full-system emulation for cross-arch binaries, firmware, kernels, disks, serial consoles, networking, and GDB stubs.