Betabuf
Challenge
Auth runs on signed protobuf tokens. The end goal is an admin AccountToken together with an is_local_ip SecureConnectionDetails, all carrying valid signatures.
| |
Approach
Three independent weaknesses chain together.
Get verified. The backend will accept a serialized Registration where a RegistrationInvite is expected, so you can set is_verified yourself.
Become admin. The /rename endpoint truncates the old token at a fixed length. Pad the old username so the cut lands right at the is_admin field, then let the new username complete the buffer. Protobuf takes the last value for a repeated field, so the appended bytes win.
| |
The -13 needs fuzzing locally until the boundary lines up.
Bypass 2FA. The submit_score API doubles as an oracle, since whatever it returns parses cleanly as a SecureConnectionDetails, which is how the is_local_ip detail gets produced.