Favorite bug chain of the year:
Broken Access Control in Comment Mentions → Stored XSS → CSP bypass → Notification code execution → Domain-wide token → Tenant-wide account takeover.
Sometimes the smallest features hide the biggest bugs.
Should I write a full write-up?
Why it works: signature matching runs per input. Neither half matches a rule on its own, so nothing fires. The browser doesn’t care where the bytes came from, it just parses the finished output.
WAF sees input. Browser sees output.
The WAF blocked every payload I tried. But two user-controlled fields were rendering side by side in the same response, so I split the payload across both. Half in one, half in the other. Each part looked harmless. The browser put it back together.
Just got paid $2,000 for a single SSRF. 🩸
It started with a simple “fetch this image” endpoint.
A few requests later, I had access to internal APIs that were never meant to be exposed.
Big thanks to my mentor, @safe_mode01 , for the continuous guidance and support. 🙏