pwneglyph logo

JavaScript / Browser

Client- and server-side JS bugs — mXSS, prototype pollution and path-copy gadgets, CSP bypass chains, DOM clobbering, Angular sinks, and Node module / inspector pivots.

0 categories 28 notes
28 total

Trick Angular's client-built fetch URL into requesting another same-origin resource via surviving path separators or matrix params.

web javascript angular cspt path-traversal same-origin

Reach data into DomSanitizer.bypassSecurityTrustHtml() bound to [innerHTML] to disable Angular's sanitization.

web javascript angular xss bypasssecuritytrusthtml innerhtml

Inject named elements so JS reads attacker-controlled config or callbacks from document/form named properties.

web javascript dom-clobbering xss named-properties configuration

Deliver attacker JS through a data:text/javascript module specifier that comments out an appended suffix.

web javascript nodejs dynamic-import data-url rce

Defeat e.source === iframe.contentWindow checks (without origin checks) by navigating the trusted frame to attacker content.

web javascript postmessage origin-check iframe xss

Use rich-text commands like insertHTML as explicit parser sinks when you control both command and value.

web javascript execcommand xss html-sink wysiwyg

Treat leaked docs, bundles, and operational endpoints as the shortest path to the intended primitive, not just enumeration.

web javascript enumeration information-disclosure docs recon

Use fullwidth punctuation that IDNA normalization collapses into ASCII syntax inside a CSP header or inline JS string.

web javascript idna unicode csp-injection xss +1

Upload a file that passes server image validation but is fetched as JSON by Angular, bridging server and client trust into XSS.

web javascript angular file-upload mime-confusion xss +1

Test unusual script types whose CSP handling has had browser-version-dependent corners when classic inline scripts are blocked.

web javascript csp-bypass importmap speculationrules browser-quirks

Abuse a WHERE username LIKE ? reset query with wildcards to match and reset the admin account.

web javascript sql like-injection password-reset account-takeover

Leak an inherited secret by observing how a LiquidJS sort filter orders attacker probe values around it.

web javascript liquidjs template-injection prototype oracle +1

Inject a meta CSP, read an existing nonce, and reparse through iframe.srcdoc to turn a blocked inline script into an allowed one.

web javascript csp-bypass nonce srcdoc reparse +1

Exploit if (bcrypt.compare(...)) without await — a Promise is truthy, so any password logs in.

web javascript nodejs authentication-bypass bcrypt async-bug +1

Exploit the parser mismatch between server-side DOMPurify/JSDOM sanitization and browser reparsing of the serialized string.

web javascript mxss dompurify jsdom xss +2

Replay Server Action calls out of band to reach callable backend functions when IDs, serialization, and WAF behavior line up.

web javascript nextjs react-server-actions rsc deserialization

Open a Node process's inspector with SIGUSR1, then use the DevTools protocol to evaluate code in that process.

web javascript nodejs inspector sigusr1 devtools-protocol +1

Recover a client-side "secret" by beautifying obfuscated JS and reversing its transform stack offline.

web javascript obfuscation reverse-engineering client-side-auth crypto

Point SSO at attacker-controlled OIDC metadata, and/or abuse a JSONP callback endpoint for browser-side code execution.

web javascript oidc sso jsonp callback-injection +1

Send repeated/array fields so a Node app spreads them into SQLite params, distorting binding order or values.

web javascript nodejs parameter-pollution sqlite express +1

Send a message a receiver treats as trusted HTML because it skips strict origin and schema checks.

web javascript postmessage html-injection xss origin-check

Probe routes that index objects by path key for inherited properties to reveal structure and prototype-pollution reachability.

web javascript prototype information-disclosure dynamic-routes nodejs

Abuse a custom "copy a.b.c into x.y.z" parser as an arbitrary property write across the browser object graph.

web javascript prototype-pollution path-copy dom xss

Rebind the function the app already calls (e.g. blacklist.includes) to a more useful existing primitive instead of injecting new code.

web javascript prototype-pollution function-rebind xss dom

Switch from iframe-based exfiltration to a top-level window so a SameSite=Lax cookie is actually sent.

web javascript samesite cookies csrf browser-bot +1

Flip a branch like (v ? 0 : v.length) by setting an inherited length through prototype pollution.

web javascript prototype-pollution logic-bug truthiness

Use locale-sensitive case folding (Turkish dotted I) so a lowercased command-name blacklist misses insertHTML.

web javascript unicode case-folding execcommand xss +1

Bypass blacklists that miss mixed-case event handlers, since HTML attribute names are case-insensitive in the browser.

web javascript xss sanitizer-bypass event-handlers case-insensitive