Lewati ke isi

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.

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

  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. Hexflag.
  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 · "Kenali bungkusnya, buka isinya."