mcpField
C
competition-browser-persistence

competition-browser-persistence

github.com/zhaoxuya520Security43.7k93 installsUpdated 5w ago
Repository

About competition-browser-persistence

A CTF skill for investigating browser-held state that influences application behavior, rather than relying only on visible HTML or backend code. It is used after `$ctf-sandbox-orchestrator` establishes the sandbox and evidence priorities.

Key features

  1. 01Map browser storage surfaces
  2. 02Record origin and scope boundaries
  3. 03Link stored state to runtime effects
  4. 04Compare clean and mutated states
  5. 05Reduce findings to a minimal chain

Use cases

  1. 01Tracing a cookie into a request header
  2. 02Checking storage-driven route visibility
  3. 03Comparing cached and live API behavior
  4. 04Reproducing a stateful browser branch

Install

Copy the command and run it in a terminal.

$npx skills add https://github.com/zhaoxuya520/reverse-skill --skill competition-browser-persistence

After installing, type/competition-browser-persistencein Claude Code to confirm it loaded.

Bundled filesagents/openai.yamlreferences/browser-persistence.md

Details

From the project README

Competition Browser Persistence

Use this skill only as a downstream specialization after $ctf-sandbox-orchestrator is already active and has established sandbox assumptions, node ownership, and evidence priorities. If that has not happened yet, return to $ctf-sandbox-orchestrator first.

Use this skill when the decisive branch lives in browser-held state rather than only in visible HTML or backend source.

Reply in Simplified Chinese unless the user explicitly requests English.

Quick Start

  1. Identify the active persistence surface first: cookie jar, localStorage, sessionStorage, IndexedDB, Cache Storage, or service worker.
  2. Record origin, scope, domain, path, expiry, and key names before mutating state.
  3. Tie stored state to one concrete effect: request header, rendered branch, cached response, offline behavior, or hidden route access.
  4. Separate boot-time state from runtime-mutated state.
  5. Reproduce the smallest stateful sequence that reaches the decisive branch.

Workflow

1. Map Browser State Surfaces
  • Inspect cookies, storage buckets, service worker registrations, cache entries, and transient globals exposed during boot.
  • Record which origin, host, route, or feature flag each state item actually applies to.
  • Keep auth tokens, refresh material, CSRF state, cached responses, and feature toggles in separate evidence blocks.
2. Tie State To Runtime Behavior
  • Show how stored state becomes request headers, role derivation, route visibility, cached API data, or offline fallback behavior.
  • Compare clean-state and mutated-state runs with one variable changed at a time.
  • Distinguish UI-only state from backend-accepted state.
3. Reduce To The Decisive Persistence Chain
  • Compress the result to the smallest chain: initial page or login -> state persisted -> subsequent request or render branch -> resulting capability.
  • Keep extracted storage, service worker scripts, and replay steps tied to the same origin and route.
  • If the problem broadens into general web routing or worker behavior outside browser persistence, switch back to the broader web-runtime skill.

Read This Reference

  • Load references/browser-persistence.md for the browser-state checklist, service-worker checklist, and evidence packaging.

What To Preserve

  • Cookie attributes, storage keys, database names, cache keys, service worker scopes, and origin boundaries
  • The exact request or render effect caused by each decisive state item
  • Clean-state vs mutated-state reproduction steps for the smallest working path

Comments

Markdown supported