Data & Encoding¶
Fase: Fondasi · Estimasi: 30–35 menit · Prasyarat: F4 Tujuan akhir: Paham "wujud" data (biner/hex/ASCII), encoding umum (Base64, hex, ROT13), & beda penting: encoding vs hashing vs enkripsi. Glossary.
1. Briefing¶
Di CTF kamu terus bertemu teks aneh: ZmxhZ3toaX0= atau 666c6167. Itu bukan
sihir — data yang "dibungkus" cara tertentu. Modul ini bikin kamu bisa mengenali &
membuka bungkusnya — skill paling sering dipakai pemula.
2. Materi Inti¶
2.1 Wujud data: biner → hex → teks¶
Huruf: f l a g
ASCII: 102 108 97 103
Hex: 66 6c 61 67 → "666c6167"
Biner: 01100110 ...
A=65=0x41).
Lihat teks panjang berisi hanya 0-9 a-f? Curigai hex → decode!
2.2 Kenali encoding dari cirinya¶
HEX → hanya 0-9 a-f 666c6167 → flag
BASE64 → huruf+angka+ +/ , akhiran = ZmxhZw== → flag
URL → banyak %XX %2F → /
ROT13 → huruf digeser 13 synt → flag
BINARY → deretan 0/1 01100110... → f...
2.3 BEDA PENTING (miskonsepsi #1 pemula)¶
ENCODING HASHING ENKRIPSI
tujuan: ubah FORMAT "sidik jari" RAHASIAKAN
dibalik? gampang tidak (1 arah) tapi perlu KUNCI
kunci? tidak tidak ya
contoh: Base64, hex MD5, SHA-256 AES, RSA
analogi: bungkus kado blender→smoothie brankas
(siapa pun buka) (tak bisa balik) (perlu kunci)
Base64 BUKAN pengamanan! Siapa pun bisa decode dalam sedetik. Banyak orang salah kira data "aman" padahal cuma di-Base64.
2.4 Worked Example: rantai decode (CyberChef)¶
Kadang data dibungkus berlapis. Coba di CyberChef:
Input: 5a6d78685a773d3d (hex) ← contoh berlapis
Recipe: ① From Hex → hasilnya "ZmxhZw==" (teks Base64)
② From Base64 → hasilnya "flag" (teks asli)
Di terminal:
$ echo "ZmxhZw==" | base64 -d ; echo
flag
$ echo "666c6167" | xxd -r -p ; echo
flag
Checkpoint¶
- [ ] Bisa kenali hex vs Base64 dari cirinya.
- [ ] Hafal: encoding (no kunci) ≠ hashing (1 arah) ≠ enkripsi (perlu kunci).
- [ ] Paham Base64 bukan keamanan.
3. Kacamata Intelijen Siber¶
- Penyerang sering menyamarkan data curian dengan encoding (Base64 di lalu lintas C2) agar tak mencolok — analis harus jeli mengenalinya.
- Beda hashing vs enkripsi = paham cara password disimpan benar (di-hash, bukan polos/encode).
Purple: kenali encoding untuk membuka data tersembunyi (red) & untuk tidak salah mengira encoding = keamanan (blue).
Kesalahan Umum¶
| Salah | Benar |
|---|---|
| "Base64 = enkripsi/aman" | Encoding biasa, bisa dibuka siapa saja |
| Kira hash bisa "di-decrypt" | Hash satu arah; tak bisa dikembalikan |
| Decode lapisan dari dalam | Buka dari luar ke dalam, satu per satu |
| Password disimpan polos/encode | Harus di-hash (bcrypt/argon2) |
4. Hubungan ke Write-up CTF¶
- Warmup (hex), Pesan Tersembunyi (Base64+ROT13), Transmisi Gambar, Jejak Digital Dev (rantai Base64) — semua langsung pakai modul ini.
Trik Cepat Memahami¶
Kartu kenal encoding -- "lihat ABJAD-nya dulu". Ini reflek paling sering dipakai di CTF:
| Ciri yang kamu lihat | Kemungkinan besar | Buka dengan |
|---|---|---|
A-Z a-z 0-9 + / diakhiri = |
Base64 | From Base64 |
hanya 0-9 a-f, panjang genap |
Hex | From Hex |
hanya 0 dan 1 |
Biner | From Binary |
banyak %2F %20 |
URL-encoding | URL Decode |
| huruf "bergeser" tapi pola kata utuh | Caesar/ROT | ROT13 / brute |
titik & garis .- ..- |
Morse | From Morse |
Kunci fundamental: encoding bukan enkripsi -- tak ada kunci rahasia, siapa pun bisa membuka. Tugasmu cuma mengenali bungkusnya.
5. Rangkuman¶
- Data = angka; ditulis biner/hex/ASCII.
- Encoding: Hex, Base64, URL, ROT13 — kenali dari ciri.
- Encoding ≠ Hashing ≠ Enkripsi (kado/blender/brankas).
- Base64 bukan keamanan. Alat:
base64 -d,xxd, CyberChef.
6. Uji Pemahaman¶
666c6167encoding apa? decode jadi apa?- Ciri khas Base64?
- Mana yang (a) butuh kunci, (b) tak bisa dibalik, (c) cuma ubah format?
- Kenapa salah bilang "aman karena sudah Base64"?
- Password yang benar disimpan: encode, hash, atau apa adanya?
6 (PG).
ZmxhZw==adalah: A. Hex · B. Base64 · C. ROT13 · D. AES
Kunci Jawaban
- Hex →
flag. - Huruf besar/kecil + angka +
+//, sering diakhiri=. - (a) Enkripsi butuh kunci; (b) Hashing tak bisa dibalik; (c) Encoding cuma ubah format.
- Base64 bisa di-decode siapa saja tanpa kunci — encoding, bukan enkripsi.
- Di-hash (idealnya bcrypt/argon2 + salt).
- B.
7. Misi Berikutnya¶
Lanjut ke F9 — Python untuk Security.
LIGHTSIBER · "Kenali bungkusnya, buka isinya."