Lewati ke isi

[ 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 ...
- Hex = basis 16 (0-9, a-f); 1 byte = 2 digit hex. - ASCII = tabel angka↔huruf (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) 🎉
Pelajarannya: kenali lapisan, buka satu per satu (dari luar ke dalam). Ini pola soal Pesan Tersembunyi (Base64+ROT13) & Jejak Digital Dev (rantai Base64).

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