- Deleted all 14 dummy docs from DB + filesystem - Created 14 Gemastik warmup writeups + index via create_document API (DB-first) - ch1-ch12: encoding/stego/web/pwn basics - ch13: RSA small factors - ch14: RSA special integers via paper-search (GCD with paper appendix primes) - All 15 docs indexed and live at wiki.asepharyana.my.id
1.3 KiB
1.3 KiB
title, type, section, status, author, tags, path, created_at, updated_at, event, challenge, category, points, difficulty, flag
| title | type | section | status | author | tags | path | created_at | updated_at | event | challenge | category | points | difficulty | flag | ||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Sixty Four — Double Base64 | writeup | writeups | published | asep |
|
writeups/gemastik-2026-warmup/ch1-sixty-four.md | 2026-08-21T07:25:17.079Z | 2026-08-21T07:25:17.079Z | GEMASTIK 2026 Warmup | Sixty Four — Double Base64 | crypto | 500 | easy | GEMASTIK19{b4s3_s1xty_f0ur_warm1ng_up} |
Sixty Four (500 pts) — Encoding
File: chall.txt → UjBWTlFWTlVTVXN4T1h0aU5ITXpYM014ZUhSNVgyWXdkWEpmZDJGeWJURnVaMTkxY0gwPQ==
Teks di-encode Base64 dua kali (hint: "sixty four" = base64). Decode berlapis:
$ echo "UjBWTlFWTlVTVXN4T1h0aU5ITXpYM014ZUhSNVgyWXdkWEpmZDJGeWJURnVaMTkxY0gwPQ==" | base64 -d
R0VNQVNUSUsxOXtiNHMzX3MxeHR5X2YwdXJfd2FybTFuZ191cH0=
$ echo "R0VNQVNUSUsxOXtiNHMzX3MxeHR5X2YwdXJfd2FybTFuZ191cH0=" | base64 -d
GEMASTIK19{b4s3_s1xty_f0ur_warm1ng_up}
Solusi Python
import base64
with open("chall.txt") as f:
s = f.read().strip()
# First base64 decode
decoded1 = base64.b64decode(s)
# Second base64 decode
flag = base64.b64decode(decoded1).decode()
print(f"Flag: {flag}")
# Output: GEMASTIK19{b4s3_s1xty_f0ur_warm1ng_up}
Flag
GEMASTIK19{b4s3_s1xty_f0ur_warm1ng_up}