Stored XSS Chain Earns $15,000 Bug Bounty

· 8:02 · Watch on YouTube ↗

Summary

A bug-bounty researcher describes bypassing a WAF to exploit stored XSS in an events app, then using an invitation flow and a CSP bypass to demonstrate account-takeover risk.

Key points

  • The presenter says the finding earned a $15,000 bounty during a HackerOne live-hacking event.
  • A request with the Content-Encoding gzip header bypassed WAF rules that had blocked the tested input.
  • The stored XSS first affected the researcher’s own profile in the events application.
  • Inviting an existing events user could cause the XSS to run when that user opened the page, creating a reported account-takeover path.
  • A CSP bypass involved a customer-domain subdomain takeover and a hosted JavaScript file; the presenter says this part was not included in the recreated lab.
  • The demonstration highlights risks when applications share sessions and profile data but handle input and security controls differently.

Article Details

Topics
  • [00:27] XSS, account-takeover risk, and learning from application behavior
  • [01:46] Shared sessions and profile data across connected applications
  • [02:57] Testing inputs and encountering WAF blocking
  • [03:30] Bypassing WAF rules with a gzip request header
  • [04:51] Stored self-XSS in the events application
  • [05:49] Using event invitations to expose other users to the XSS
  • [06:39] CSP bypass involving a subdomain takeover and hosted JavaScript