Gareth Heyes

Gareth Heyes

@garethheyes.co.uk

Web security researcher at PortSwigger. Author of JavaScript for Hackers, Shazzer and Hackvertor. https://javascriptforhackers.co.uk/ https://garethheyes.co.uk/

3K followers332 following518 posts

XSS from a response header ๐Ÿคฏ Firefox will load an XSLT stylesheet from a data: URL in a Link header. Combined with a harmless XML body and you get JS running in the page origin. Plus Safari importing GIFs as SVG and more sanitizer bypasses: portswigger.net/research/sca...

Whoo hoo random() now works in Chrome! My escape room puzzle solutions will now be randomized in Chrome. Just waiting for Firefox now.

Last night I finished a bunch of changes to make the Hackvertor UI more minimal. I removed the autodecode box and instead now you can just make a selection and autodecode the selection. Same features, less clutter. hackvertor.co.uk

Made a personal network in Shazzer so you can have all your logged in browsers connected so you can fuzz them all at once. Also added a fuzz basket feature so you can add a load of vectors to your personal fuzzing network. That was fun.

Stuck inside a <meta> and angle brackets blocked? You can still get XSS... In Firefox, use hidden=until-found and onbeforematch with a URL hash to trigger your handler. Now in our XSS cheat sheet, thanks to ยญMathias Karlsson.

Gareth Heyes reposted

Turbo Intruder 2 has landed! You can now surpass 100,000 RPS over WiFi using the new HTTP/3 engine, test HTTP/3 exclusive targets with the Burp adapter, and deploy new research-grade race condition techniques! Check out the post below for full details:

I've improved the sandbox in web Hackvertor to prevent tags from interfering with each other. For example if one tag executes first it used to be able to overwrite other functions like btoa. Fixed! <@encode(js)>btoa=()=>"pwnd"</@encode> <@encode(base64)>foobar</@encode>

Safari actually supports CSS random! It's buggy but it does work. My escape room puzzles are now randomised on desktop and iPhone other browsers will follow

I've made a major change to Shazzer. It will now collate historical fuzz result data. Previously to save costs it would remove older result data. I've since upgraded my db server. We should then have a history of interesting browser data. You can get RSS feeds of fuzz results too

My site now uses random() to randomize the solutions to the escape room. Random isn't available yet in any modern browser so it will fallback to a static solution.

Gareth Heyes reposted

Next week I'll present "Can AI Do Novel Security Research? Meet the HTTP Terminator" at @defcon.bsky.social & Black Hat USA! I'm really excited to share this one - got some spectacular outcomes from a wild research journey. See you there!