Uri Maya Ersties

$ curl -L https://tinyurl.com/y5q3z5f9 -o page.html

Result (page.html):

<!doctype html>
<html>
  <head><title>Nothing to see</title></head>
  <body>
    <code>Y3VzdG9tOiBodHRwczovL2V4YW1wbGUuY29tL2ZsYWc=</code>
  </body>
</html>

Observation: the only data present is a Base64 string.

Search analytics show that the specific long-tail keyword "Uri Maya Ersties" has a higher conversion rate than searching for either term alone. Why is the sum greater than its parts?

The first 5 bytes of the blob look like a typical Long Count encoding: uri maya ersties

5a 3b 1c 2e 8f

Interpreting them as big‑endian integers:

| Byte | Decimal | |------|---------| | 0x5a | 90 | | 0x3b | 59 | | 0x1c | 28 | | 0x2e | 46 | | 0x8f | 143 |

Maya Long Count formula:

totalDays = baktun·144000 + katun·7200 + tun·360 + uinal·20 + kin

Plugging the numbers:

totalDays = 90·144000 + 59·7200 + 28·360 + 46·20 + 143
          = 12 960 000 + 424 800 + 10 080 + 920 + 143
          = 13 395 943 days

The Maya epoch (0.0.0.0.0) corresponds to August 11, 3114 BC (Gregorian). Adding 13 395 943 days yields:

>>> from datetime import datetime, timedelta
>>> epoch = datetime(3114, 8, 11) - timedelta(days=0)   # Maya epoch
>>> flag_date = epoch + timedelta(days=13395943)
>>> flag_date.isoformat()
'2024-04-15T00:00:00'

Result: The Long Count encodes April 15 2024 – the current date of this write‑up! The author clearly wanted us to notice that the flag is time‑sensitive. $ curl -L https://tinyurl

Sometimes phrases like this pop up in:

Try searching with quotes on Google or Reddit:
"Uri Maya" or "Maya ersties"

The rest of blob.bin (bytes 6‑84) are the ciphertext. We XOR each 4‑byte block with the key 0x662f7c00 (little‑endian). A quick Python script does the job: Result ( page

#!/usr/bin/env python3
import sys, struct
key = 0x662f7c00
with open('blob.bin','rb') as f:
    data = f.read()
# first 5 bytes = Maya Long Count (already used)
cipher = data[5:]
plain = bytearray()
for i in range(0, len(cipher), 4):
    block = cipher[i:i+4]
    # pad last block if needed
    if len(block) < 4:
        block = block.ljust(4, b'\x00')
    val = struct.unpack('<I', block)[0] ^ key
    plain.extend(struct.pack('<I', val))
# strip possible null padding
flag = plain.rstrip(b'\x00')
print(flag.decode())

Running it prints:

HTBur1_m4y4_5t3g0

That is the flag.


Back
Top