Post

Webverselabs Challenge Spindrift Workspace Cookie

Webverselabs Challenge Spindrift Workspace Cookie

Scenario :

Two founders, eighteen months in, no marketing budget, no AI features. They built their own session layer one weekend “because we don’t need a whole library for this.” A junior contractor noted in the team Linear that the cookie was “stateless and self-describing” and shipped it.

Solution :

image

I will speedrun this one since this one was pretty easy :

/Pricing , /Changelog , Field Notes : All of these returns static web pages that are pretty useless to us .

We will try to create an account :

image

If we try to use the Free plan , we’re given a default account , Bob@gmail.com :

image

Looking at the request, we can’t modify the role or anything like that during the login .

image

Once we login , we can view our account , or Open New Workspaces .

image

Now if we look closely at the request , the cookie ends with a “=” and looks like a base64 encoding , if we try to decode it :

image

We see that we have the role of a member, let’s try to modify the role and encode it again and see if we can get access as the Administrator :

1
2
echo "{"uid":42,"email":"bob@example","role":"admin","exp":1781607517}" | base64
e3VpZDo0MixlbWFpbDpib2JAZXhhbXBsZSxyb2xlOmFkbWluLGV4cDoxNzgxNjA3NTE3fQo=

image

Now back to the app , let’s modify the Cookie from the browser tools :

image

And from there we access the New Admin endpoint and get our flag that way .

That was all for this challenge, see you in the next one :)

This post is licensed under CC BY 4.0 by the author.