I did a penetration test and I found several xss vulnerabilities that was triggered in burpsuite or curl (Also in web application scanners) but when I tried to execute it in the browser, it was encoded to utf-8 and the payload wont execute in browser. Now I know that the encode process is a default by the RFC in all modern browsers. If I run the payload in burpsuite\curl\etc. It will not encode any of the special chars so its only the browser that does it but the strange behavior that the application is treat differently to the encoded payload. Even if I encode the full payload to utf-8 it wont trigger because of the code (in Response)
Live Example From Burpsuite: This payload "><script>alert(111)</script>
will get a success trigger (alert popup from xss)
Live Example From Browser: This payload "><script>alert(111)</script>
will get an encoded payload that will not trigger xss.
Questions:
- Why the web server treat to utf8 as a different type ?
- Can I exploit in real scenarios those vulnerabilities (theoretical situation against victims from the attacker aspect)
- Do you know how to bypass it ?
- Is there any way to send the request without the browser encoding it ?