It's another web challenge!  Unlike the other one there's actually
something to do, surf around the shop, add things to the cart and
remove them.  Doing so changes parts of a hex-encoded cookie which
suggests the website is storing the cart state inside it.
Unfortunately just decoding it gives us gibberish, so it's most likely
encrypted.

Not all hope is lost though, just because a cookie is encrypted
doesn't mean you can't mess with it.  Depending on which part of the
cookie you modify, it's possible to trigger the following error
messages:

- byte 04,10,16,22,28: Value error: ':';
- byte 35: Value error: unknown user: fuest
- byte 36: Value error: unknown user: gtest
- byte 37: Value error: unknown user: gudst
- byte 38: Value error: unknown user: guert
- byte 39: Value error: unknown user: guesu
- byte 47: Value error: invalid status: 2

It's unclear what the first error means, but the other ones show bytes
35-39 hold the user name and byte 47 some status flag.  This means
it's possible to change the user name into something completely
different and the status flag into a different number.  The goal is to
become admin, so let's mess with each of the five bytes until they
resemble `admin` and see what happens...

Sadly this isn't enough.  The website changes to acknowledge our new
name, but clicking the vault link tells us that we aren't admin yet.
Messing around with byte 47 eventually flips it into giving us full
admin access:

> Welcome to the secret vault! Your secret spells are stored safely in
> here. Each spell has been separately encrypted with your secret key.

There's an "Add secret" button which errors out and a link to export
all secrets.  Clicking it shows a bunch of lines of hexadecimal
nonsense, all of which are rather long.  Searching for "repeating key
cipher" points to the Vigenère cipher and the modern equivalent of
repeating key XOR.  If every spell has been XORed against the same
sequence of secret bytes, it's possible to do cryptanalysis by doing
the following:

- Cut all ciphertexts to a common length (the shortest ciphertext)
- Transposing all ciphertexts so that the first byte of each forms a
 line, then the second, etc.
- Solve for each line by doing statistical analysis:
 - Try every possible key byte
 - Record the key byte which makes the ciphertext resemble English
   text the most
- Assemble the obtained key bytes
- Decrypt each ciphertext line
- Find the ciphertext line containing the flag prefix