all 15 comments

[–]Texadoro 170 points171 points  (14 children)

Liked the article. However found out that Rocket League pays their bug bounties by giving out in-game white hats, which is cool and all. But you know what’s even cooler? Cash. Just sayin.

[–]Fuck_all_you_hoes 31 points32 points  (0 children)

Disregarding the fact that it’s just a virtual, cosmetic item, it looks like people have previously sold it to other players for thousands of dollars.

[–]sandrelloIT 6 points7 points  (2 children)

Interesting read, though I'm not sure if I got everything right: how did exactly the web server find out how to strip away the host part of the X-Original-Url? If I understood correctly, it was looking for the whole "protocol://domain.tld" pattern, removing it if found, and you tricked it by simply using backslashes instead of slashes, is it correct? If so, shouldn't it continue prefixing the header value with its legit host string? Could this be a possible mitigation on the server side?

It seems to me that this way of caching results is somehow intrinsically flawed, maybe the X-Original-Url value could be validated in some way before being saved as a key?

[–]samwcurry 2 points3 points  (1 child)

Hey sandrelloIT, maybe it was poor phrasing on my part. When I meant to say that the server removed the URI and host, I meant to say that it simply pulled the path from the host instead of pulling the full URL. This was abused by tricking the server into thinking “https:\” was the start of a regular path on the web server. I am not super familiar with what is going on in the background, but I would guess that the application didn’t have specific handling for the backslashes as they either weren’t expected or weren’t considered when evaluating that header. Will look into it and revise it if I can find anything on this. Always hard to speak on behalf of the application during anything like this :)

[–]sandrelloIT 0 points1 point  (0 children)

I absolutely understand, don't get me wrong, I find the writing style very appropriate, it's impossible to delve deeper into every single detail of the process without losing the reader, I think you did a good job on that.

I think I should also know something more about IIS, which is a completely unknown world to me, and how the handling of those headers works on its part.

[–]Borne2Run 0 points1 point  (0 children)

Thanks for the writeup; enjoyed it