agentleFS
mahumadadmahumadad/quarry/skills/hunt/cryptographic-oracle/SKILL.md

cryptographic-oracle

Skill1 starsChanged 12 days agoMITView on GitHub

Validate padding, decryption, validation and timing oracles in application cryptographic protocols using controlled samples and negative controls. Use for CBC padding errors, distinguishable token-validation failures, or measurable decryption/validation oracles; do not use for generic weak-cryptography observations without an exploitable interface.

The file

We split this skill into the rules it gives an agent

3 rules. About 0 are common, 3 are distinctive, and 0 are very specific to this project.

  • ≈0

    Common · estimate

    Many files like this have a rule of this kind.

  • ≈3

    Distinctive · estimate

    This author's own choices. Worth a look.

  • 0

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Distinctive:

    Use only tokens and test accounts issued for the engagement.

    line 18
  2. Distinctive:

    Record negative space: If errors and timing converge across the defined samples, record the exact token family, endpoint, sample counts and …

    line 37
  3. Distinctive:

    Do not report “weak crypto” solely because CBC, ECB, RSA or SHA-1 appears.

    line 46

≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

Safety and scope

Use only tokens and test accounts issued for the engagement. Keep request counts low and within the ROE: oracle testing can resemble credential attacks or availability testing. Bulk decryption, forgery of another user's token and account takeover require separate explicit gates.

Methodology

  1. Map the cryptographic boundary. Identify token format, encoding, endpoint, identity, protocol version and where validation occurs. Do not infer CBC/PKCS#7 from token length alone.
  2. Build controlled baselines. Capture unmodified valid input, malformed encoding, truncated input and random input of equal length. Record status, body, headers, timing and full artifacts.
  3. Test distinguishability. Make one minimal, authorized modification at a time and compare padding/validation/MAC/decryption errors. Repeat interleaved valid and invalid controls so load balancing, rate limits and generic error pages cannot masquerade as an oracle.
  4. For timing hypotheses, collect enough paired samples to report distributions and variance, alternate candidate ordering, and rerun on a separate baseline. A small average difference is inconclusive, not a demonstrated timing oracle.
  5. Demonstrate only the minimum impact. A distinguishable error is a lead. Show a controlled padding/validation distinction, or a separately gated benign forgery/decryption on your own fixture, before claiming confidentiality or integrity impact.
  6. Record negative space. If errors and timing converge across the defined samples, record the exact token family, endpoint, sample counts and artifact IDs. A different protocol/version is a new coverage cell, not covered by the old result.

Evidence and gotchas

  • Preserve raw inputs as hex/baseurl-safe artifacts plus exact request/response pairs and code used.
  • Distinguish padding validity from MAC validity and from application-level authorization.
  • Generic 400/500 differences are not enough; random-input and rate-limit controls are mandatory.
  • Do not report “weak crypto” solely because CBC, ECB, RSA or SHA-1 appears; identify the actual protocol misuse and demonstrated consequence. Avoid destructive or high-volume oracle searches.

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.