CTF Learning
Balik

Misc & OSINT

Encoding, OSINT, dan hal-hal random

Kategori Paling Random

Misc itu campur-campur. Bisa encoding, OSINT, programming, puzzle, bahkan guessing game. Biasanya poin kecil tapi gampang solved.

Encoding - Wajib Hafal

Mudah

Ini bukan enkripsi, cuma encoding. Gampang di-decode.

Cara Kenali Encodingtext
1Base64:
2- Huruf A-Z, a-z, 0-9, +, /
3- Sering ada = di akhir (padding)
4- Contoh: SGVsbG8gV29ybGQ=
5
6Base32:
7- Huruf A-Z dan 2-7 DOANG
8- Padding juga =
9- Contoh: JBSWY3DPEBLW64TMMQ======
10
11Hex:
12- Cuma 0-9 dan a-f
13- Contoh: 48656c6c6f
14
15Binary:
16- Cuma 0 dan 1
17- Biasanya 8 digit per karakter
18- 01001000 01100101 01101100 = "Hel"
19
20URL Encoding:
21- Ada %XX
22- %20 = spasi, %3D = =
23- Contoh: Hello%20World
24
25ROT13:
26- Huruf digeser 13
27- Self-inverse (encode = decode)
28- Contoh: Uryyb = Hello
Quick decode di terminalbash
1# Base64
2echo "SGVsbG8=" | base64 -d
3
4# Hex
5echo "48656c6c6f" | xxd -r -p
6
7# URL decode
8python3 -c "import urllib.parse; print(urllib.parse.unquote('Hello%20World'))"
9
10# ROT13
11echo "Uryyb" | tr 'A-Za-z' 'N-ZA-Mn-za-m'
12
13# Dari file
14cat encoded.txt | base64 -d

Demo Interaktif

Hex Converter

Convert text ke hex atau sebaliknya

CyberChef FTW

Males decode manual? Pake CyberChef. Fitur "Magic" bisa auto-detect encoding.

OSINT - Stalking Legal

Mudah

Cari informasi dari sumber publik

Tempat Cari Info

Orang
  • • Google nama + username
  • • Social media (IG, Twitter, LinkedIn)
  • • GitHub, GitLab
  • • namechk.com (cek username)
Website
  • • WHOIS lookup
  • • DNS records
  • • Wayback Machine
  • • SSL certificate info
Lokasi
  • • Google Maps / Street View
  • • EXIF GPS dari foto
  • • Geolocation dari landmarks
Gambar
  • • Google Reverse Image
  • • TinEye
  • • Yandex Images (lebih jago)

Google Dorking

Mudah

Cara pake Google buat cari hal tersembunyi

Google Dork Operatorstext
1site:example.com → cari di domain tertentu
2filetype:pdf → cari file PDF
3intitle:"index of" → cari directory listing
4inurl:admin → URL yang ada "admin"
5intext:password → halaman yang ada kata password
6
7# Contoh kombinasi:
8site:pastebin.com password
9site:github.com "API_KEY"
10filetype:sql intext:password
11intitle:"index of" "backup"
12site:trello.com password
13inurl:wp-admin site:example.com

Hati-hati

Google dorking buat CTF oke. Tapi jangan pake buat nyari vulnerability di website orang tanpa izin, itu ilegal.

Metadata Analysis

Mudah

Info tersembunyi di dalam file

File (terutama gambar) sering nyimpen info yang gak keliatan: kamera, lokasi GPS, author, software, dll.

exiftool - temen terbaikbash
1# Liat semua metadata
2exiftool image.jpg
3
4# Yang sering dicari:
5exiftool image.jpg | grep -i "gps" # lokasi
6exiftool image.jpg | grep -i "author" # pembuat
7exiftool image.jpg | grep -i "comment" # comment tersembunyi
8exiftool image.jpg | grep -i "software" # software yg dipake
9
10# Liat metadata dokumen
11exiftool document.pdf
12exiftool document.docx
13
14# Hapus semua metadata (kalo perlu)
15exiftool -all= image.jpg
Tools lainbash
1# strings - cari text di binary
2strings image.jpg | grep -i flag
3strings image.jpg | grep -i ctf
4
5# file - cek tipe file
6file mystery_file
7
8# binwalk - cari embedded files
9binwalk image.jpg
10binwalk -e image.jpg # extract

QR Code & Barcode

Mudah

Decode berbagai jenis kode

Decode QR/barcode di terminalbash
1# Install zbarimg
2# Ubuntu: sudo apt install zbar-tools
3# Mac: brew install zbar
4
5# Decode QR
6zbarimg qrcode.png
7
8# Decode dari webcam (real-time)
9zbarcam
10
11# Python alternatif
12pip install pyzbar pillow
13python3 -c "
14from pyzbar.pyzbar import decode
15from PIL import Image
16print(decode(Image.open('qr.png'))[0].data.decode())
17"

Online Tools

Programming Challenges

Menengah

Misc kadang minta bikin script

Beberapa soal misc minta kita solve ratusan challenge kecil secara otomatis pake script. Biasanya math atau string manipulation.

Template interact dengan serverpython
1from pwn import *
2
3# Connect
4r = remote('ctf.example.com', 1337)
5
6# Terima sampai prompt
7r.recvuntil(b'Answer: ')
8
9# Loop solve
10for i in range(100):
11 # Terima soal
12 question = r.recvline().decode().strip()
13 print(f"Soal: {question}")
14
15 # Solve (contoh: kalkulator sederhana)
16 answer = eval(question) # hati2 pake eval
17
18 # Kirim jawaban
19 r.sendline(str(answer).encode())
20
21 # Tunggu response
22 response = r.recvline()
23 print(f"Response: {response}")
24
25# Dapet flag
26r.interactive()