agentsclimarketplace

Ctf web

Skill MateoBogo/CLEAVE/skills/ctf-web

CLEAVE: skills-based CTF agents for mechanics-first challenge triage and exploit orchestration.

Install
npx -y skills add MateoBogo/CLEAVE --skill ctf-web

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

2 things to look at

  • no licenseNo license file was found in the repository. Code published without one is not open source by default, so using it at work is a question for whoever answers licensing questions where you are.
  • 4 stars4 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.

What its author says it does

Copied from the file, not written here

Web exploitation: SQLi, XSS, SSTI, SSRF, CSRF, XXE, JWT, OAuth/OIDC, SAML, prototype pollution, file-upload/path-traversal, HTTP smuggling, cache poisoning, Web3/Solidity, auth/parser differentials. Dispatch on manifest + framework signals.

The file declares its own license as MIT. That is the author’s claim about this one file, and it is not the same thing as the license GitHub reports for the repository, which is listed with the other numbers below.

SKILL.md

8.3 KB, as published. Nobody here has run it

CTF Web Exploitation

Quick reference for web CTF challenges. Each technique has a one-liner here; see supporting files for full details with payloads and code.

Additional Resources

  • server-side.md — SQLi, SSTI, SSRF, XXE, cmdinj, file-upload, PHP tricks, Thymeleaf/ERB/Jinja
  • server-side-2.md — 2024-26: Jinja2 dict quote bypass, Thymeleaf SpEL + FileCopyUtils WAF
  • server-side-deser.md — Java ysoserial, Python pickle, race conditions (TOCTOU, double-spend)
  • server-side-advanced.md — ExifTool CVE, zip symlink, path bypass, Flask debug, Castor XML, React Flight
  • server-side-advanced-2.md — 2025-2026: JWT-strict=false, Go err TOCTOU, Vite RCE, NFS, HQL→jshell, Firebird, polyglot
  • client-side.md — XSS, CSRF, CSPT, cache-poisoning, DOM, xs-leaks, PBKDF2 timing
  • client-side-2.md — 2025-26: Math.random-salt same-origin iframe collision (content-sandbox escape)
  • auth-and-access.md — NoSQL bypass, parser diffs, IDOR, LLM jailbreak, subdomain takeover
  • auth-and-access-2.md — 2025-2026: PHP parse_url, Next.js Next-Action SSRF, token-Map race, DNR→CDP chain
  • auth-jwt.md — JWT alg none, RS256→HS256, JWK/JKU, KID traversal, JWE forgery
  • auth-infra.md — OAuth/OIDC, CORS, CI/CD theft, SAML, TeamCity RCE, git history leaks
  • node-and-prototype.md — prototype pollution, VM escape, Happy-DOM, flatnest
  • web3.md — Solidity, proxies, ABI tricks, Foundry, transient-storage collision
  • cves.md — Next.js middleware, urllib scheme, ExifTool DjVu, Ruby-SAML XPath, PaperCut

Pattern Recognition Index

Dispatch on observed signals, not challenge titles.

Signal in the targetTechnique → file
package.json has two URL parsers (e.g. url-parse + parse-url, Node built-in + custom) and an allow-list checkTwo-parser URL differential → auth-and-access.md
Node gateway in front of backend + app.all("/strict/path", ...) + nginx/Varnish proxy%2F middleware bypass OR hop-by-hop header strip → auth-and-access.md
Flask/Django behind a reverse proxy reading X-Real-IP/X-Forwarded-For without proxy-identity checkHop-by-hop header smuggling → auth-and-access.md
Node mysql/mysql2 + .query(q, req.body) without explicit String() coercionOperator-object injection + __proto__ pollution → auth-and-access.md
Custom HTML sanitizer using createNodeIterator/TreeWalker then innerHTMLDeclarative Shadow DOM bypass (<template shadowrootmode>) → auth-and-access.md
Vyper < 0.3.x with @nonreentrant("lock") on multiple funcs sharing storage, external call hook on pathCross-function lock scope bug → auth-and-access.md
L1/L2 bridge storing (token, amount) on deposit but minting a canonical asset on withdrawLedger state-desync → auth-and-access-2.md, web3.md
Object in req.body treated as password or filter criterion ({"$gt":""}, {"$ne":null})NoSQL auth bypass → auth-and-access.md
Template rendering user input in Jinja2 / Twig / Freemarker / ERBSSTI → server-side.md
jwt.decode without verify=True, or RS256 keys reachable at /pubkey.pemRS256 → HS256 confusion → auth-jwt.md
URL contains redirect_uri= and app is OAuth/OIDCredirect_uri bypass / open redirect → auth-infra.md
Uploads path + <?php or .phar accepted / magic-bytes-only checkFile upload RCE → server-side.md
File fetch with user URL, internal services in scopeSSRF (11 IP bypass techniques) → server-side.md
2 HTTP frontends (Cloudflare+nginx, HAProxy+Apache) with mismatched parsingHTTP request smuggling → server-side.md, auth-infra.md
libxml2 XML parsing with user entities / external DOCTYPEXXE → server-side.md
Prototype pollution sink (_.merge, Object.assign, req.body.__proto__)Prototype pollution chain → node-and-prototype.md
parse_url($u)['host'] deny-list + subsequent readfile($u) (PHP)Double-colon host divergence → auth-and-access-2.md
Next.js 14+ with "use server" + trustHostHeader: true in configNext-Action forgery + host SSRF chain → auth-and-access-2.md
Shared tokens Map/object assigned in login, read in middleware pre-authRace on shared token map → auth-and-access-2.md
Extension manifest.json with declarativeNetRequest + innerHTML DOM sinkDNR→CDP→Puppeteer chain → auth-and-access-2.md
Traefik ≤ 2.11.13 reverse-proxy in front of app routesX-Forwarded-Prefix admin reach + polyglot → auth-and-access-2.md, ctf-pwn/advanced-exploits-3.md
PHP JWT lib calling base64_decode($sig, false) (strict=false)Smuggle CR/LF via JWT sig + NFKD fold → server-side-advanced-2.md
Package-level var err error + handler assigns err = …Go shared err TOCTOU race → server-side-advanced-2.md
Vite dev server exposed + internal object.mergeProto-pollution → spawn_sync RCE → server-side-advanced-2.md
/etc/exports without subtree_check directiveNFS handle forgery → server-side-advanced-2.md
String(path).replace('/static/','uploads/') (string not regex)Single-match traversal → server-side-advanced-2.md
Hibernate HQL concat + H2 on classpath + jshell moduleHQL → CREATE ALIAS → JDWP RCE → server-side-advanced-2.md, server-side-deser.md
wp_ajax_nopriv_* handler calling update_option($_POST['k'], …)WP option-update privesc → server-side-advanced-2.md
Node ORM query with req.body.id uncoerced + zip upload + unhandled promise{$gt:0} + zipslip + worker poison → server-side-advanced-2.md
Firebird banner on TCP 3050 + IIS on same hostALTER DATABASE DIFFERENCE FILE webshell → server-side-advanced-2.md
Upload accepts TAR + exec endpoint referencing uploaded filenameTAR/ELF polyglot traversal → server-side-advanced-2.md
API returns presigned S3 URL + bucket allows ListBucketPath traversal in presign parameter → server-side-advanced-2.md
Chromium ≥ 123 target + CSP allows inline style + admin bot iframeCSS @starting-style/slow-selector crash oracle → client-side.md
Admin bot + cross-origin iframe + Chromiumxs-leak via performance.memory delta → client-side.md
Content-sandbox iframe where per-item origin derives from Math.random().toString(36) + parent posts {body, salt}Salt-prediction chain → same-origin XSS → client-side-2.md
Solidity private state vars + live RPC URLeth_getStorageAt slot enumeration → web3.md
Contract validates extcodesize once then CALLs stored addr + CREATE2 deploy allowedSELFDESTRUCT+CREATE2 code-swap → web3.md
RPC exposes txpool_content / eth_pendingTransactionsMempool snoop / front-run → web3.md
nonReentrant on one function, sibling shares storage without guardCross-function reentrancy → web3.md
foundry.toml + test/ with invariant_*() / statefulFuzz_*() / StdInvariant importFoundry invariant fuzzing → web3.md#foundry-invariant
Solidity contract with bounded loops + assertable invariant + Halmos installableHalmos symbolic check → web3.md#halmos
Two contracts with identical external interface (FooV1.sol / FooV2.sol, Safe.sol / Optimized.sol)Differential fuzzing → web3.md#differential-fuzzing

Recognize the mechanic first. Never dispatch on the challenge's name.


For inline code/cheatsheet quick references (grep patterns, one-liners, common payloads), see quickref.md. The Pattern Recognition Index above is the dispatch table — always consult it first; load quickref.md only if you need a concrete snippet after dispatch.

Gives 0 of the 12 instructions most auth identity skills give

Counted across 409 of the 410 authors here whose files we hold, read 2026-08-06

  • hash passwords with bcrypt or argon2in 53 of 409, across 43 files
  • use parameterized queriesin 47 of 409, across 39 files
  • load SECRET_KEY from environment variablesin 23 of 409, across 14 files
  • validate all input server-sidein 19 of 409, across 11 files
  • refresh access tokens before expiryin 17 of 409, across 9 files
  • store tokens in httponly cookiesin 17 of 409, across 16 files
  • store refresh tokens securelyin 16 of 409, across 6 files
  • validate webhook signatures before processingin 15 of 409, across 5 files
  • sanitize user inputsin 15 of 409, across 9 files
  • implement rate limiting on auth endpointsin 14 of 409, across 9 files
  • encrypt sensitive data at restin 13 of 409, across 10 files
  • validate uploaded file extensions and sizesin 12 of 409, across 5 files

Said here and by no other author read

  • dispatch on observed signals not challenge titles
  • recognize the exploit mechanic first
  • consult the pattern recognition index first
  • load specific snippets only after dispatch

Grouped from the skills themselves: near-identical wordings counted once, and counted by distinct author, so one author publishing three of these counts once.

Keep looking

Skills are one crate of 328,083. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.