[ MODUL F8 ] 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.
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 ✅¶
1. 666c6167 encoding apa? decode jadi apa?
2. Ciri khas Base64?
3. Mana yang (a) butuh kunci, (b) tak bisa dibalik, (c) cuma ubah format?
4. Kenapa salah bilang "aman karena sudah Base64"?
5. Password yang benar disimpan: encode, hash, atau apa adanya?
6 (PG). ZmxhZw== adalah: A. Hex · B. Base64 · C. ROT13 · D. AES
🔑 Kunci Jawaban
1. **Hex** → `flag`. 2. Huruf besar/kecil + angka + `+`/`/`, sering diakhiri `=`. 3. (a) **Enkripsi** butuh kunci; (b) **Hashing** tak bisa dibalik; (c) **Encoding** cuma ubah format. 4. Base64 **bisa di-decode siapa saja tanpa kunci** — encoding, bukan enkripsi. 5. **Di-hash** (idealnya bcrypt/argon2 + salt). 6. **B.**7. Misi Berikutnya 🚀¶
Lanjut ke F9 — Python untuk Security.
LIGHTSIBER · Modul F8 · "Kenali bungkusnya, buka isinya."