cors-cross-origin-misconfiguration

CORS misconfiguration testing playbook. Use when analyzing cross-origin trust, credentialed browser reads, origin reflection, preflight policy bugs, and browser-based access to authenticated APIs.

By yaklang · 3,086 installs

npx skills add yaklang/hack-skills --skill cors-cross-origin-misconfiguration

Source repository · Upstream listing

SKILL: CORS Misconfiguration — Credentialed Origins, Reflection, and Trust Boundary Errors AI LOAD INSTRUCTION : Use this skill when browsers can access authenticated APIs cross origin. Focus on reflected origins, credentialed requests, wildcard trust, parser mistakes, and origin allowlist bypasses. For JSONP hijacking deep dives, same origin policy internals, honeypot de anonymization, and CORS vs JSONP comparison, load the companion [SCENARIOS.md](./SCENARIOS.md). Extended Scenarios Also load [SCENARIOS.md](./SCENARIOS.md) when you need: JSONP hijacking complete attack scenario — watering hole + <script cross origin data theft Honeypot de anonymization via JSONP — use social platform JSONP endpoints to identify anonymous visitors Same origin policy deep dive — protocol/hostname/port definition, document.domain subdomain relaxation and its security risks CORS vs JSONP technical comparison — methods, error handling, credential behavior, migration path CORS exploitation payloads — reflected origin with credentials: include , null origin via sandboxed iframe Dual site attack lab pattern — localhost:8981 (target) + localhost:8982 (attacker) testing setup 1. WHEN TO LOAD THIS SKILL Load when: Responses contain Access Control Allow Origin , Access Control Allow Credentials , or preflight headers A browser based attack path might read authenticated API responses JSON endpoints appear protected from CSRF but are readable cross origin 2. HIGH VALUE MISCONFIGURATION CHECKS Theme What to Check wildcard with credentials Access Control Allow Origin: plus credential support or equivalent broken behavior reflected origin server echoes arbitrary Origin weak allowlist suffix, prefix, substring, regex, or mixed case matching errors null origin acceptance of sandboxed, file, or serialized origins preflight trust overbroad methods and headers internal API exposure admin or tenant data readable cross origin 3. QUICK TRIAGE 1. Send crafted Origin headers and inspect reflection. 2. Test with and without credentials. 3. Probe allowlist bypasses using attacker subdomains and parser edge cases. 4. If readable data is sensitive, chain to account or tenant impact. 4. RELATED ROUTES Session or JSON action abuse: [csrf cross site request forgery](../csrf cross site request forgery/SKILL.md) OAuth token leakage and callback binding: [oauth oidc misconfiguration](../oauth oidc misconfiguration/SKILL.md) API auth context: [api auth and jwt abuse](../api auth and jwt abuse/SKILL.md) 5. NULL ORIGIN EXPLOITATION How Origin: null is sent Context Origin Header Value Sandboxed iframe ( <iframe sandbox ) null data: URI scheme null file: protocol (local HTML) null Cross origin redirect chain (some browsers) null Serialized data in blob: URL from opaque origin null Exploitation If the server includes null in its origin allowlist or reflects it: The sandboxed iframe sends Origin: null → server reflects null → attacker reads credentialed response. 6. SUBDOMAIN XSS → CORS BYPASS CHAIN Attack flow PoC (injected via XSS on blog.target.com) Why this works blog.target.com is same site with api.target.com → SameSite cookies sent CORS allowlist includes .target.com → Access Control Allow Origin: https://blog.target.com Combined: SameSite bypass + CORS read = full API access from XSS on any subdomain Reconnaissance for this chain 7. VARY: ORIGIN CACHING ISSUE Problem When the server reflects Origin in Access Control Allow Origin but does not include Vary: Origin in the response, intermediary caches (CDN, reverse proxy) may serve the same cached response to different origins: Detection Exploitation Fix verification 8. REGEX BYPASS PATTERNS Common flawed regex patterns for origin validation: Intended Pattern Flaw Bypass Origin ^https?://. \.target\.com$ . matches anything including https://attacker target.com ^https?://. target\.com$ Missing anchor after subdomain https://nottarget.com , https://attacker.com/.target.com target\.com (substring match) No anchors https://attacker.com?target.com ^https?://(. \.)?target\.com$ Missing port restriction https://target.com.attacker.com:443 ^https://[a z]+\.target\.com$ Missing end anchor for path N/A (but misses subdomains with or digits) Backtracking vulnerable regex ReDoS https://aaaa...aaa.target.com (CPU exhaustion) Test payloads for origin validation bypass Advanced: Unicode normalization bypass Some origin validators normalize Unicode after comparison, while the browser sends the original — or vice versa. 9. INTERNAL NETWORK CORS EXPLOITATION Scenario An internal only API (e.g., http://192.168.1.100:8080/admin ) is configured with: Internal APIs often use wildcard CORS because "only internal users can reach it." Attack chain Port scanning via CORS timing Even without Access Control Allow Origin: , the attacker can infer internal service availability: Port open : connection established → CORS error (different timing) Port closed : connection refused → fast error Host down : timeout → slow error Combined with DNS rebinding