$ 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.