Tantangan Web dan Kripto
Menyelesaikan teka-teki web dan kripto umum.
Tantangan Web dan Kripto adalah pelajaran Cyber Security Academy gratis di CoddyKit. Ini adalah pelajaran 2 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar Cyber Security Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus Cyber Security Academy mencakup 4 pelajaran total.
Dua Pilar: Web dan Kriptografi
Web dan kriptografi adalah dua titik masuk yang paling umum ke CTF.
- Tantangan web memberikan aplikasi web yang sedang berjalan dan meminta Anda menemukan kelemahan dalam cara aplikasi tersebut menangani masukan, autentikasi, atau kepercayaan.
- Tantangan kriptografi memberikan teks sandi, sebuah skema, dan terkadang kode sumber, lalu meminta Anda memulihkan teks terang atau kunci dengan memanfaatkan kelemahan dalam penggunaan kriptografi.
Keduanya menghargai pengamatan yang sistematis. Pelajaran ini membahas teka-teki yang sering muncul dalam masing-masing bidang.
Langkah Pertama pada Target Web
Sebelum mengeksploitasi apa pun, petakan aplikasinya. Lihat kode sumber, periksa respons, dan selidiki konten tersembunyi.
# Inspect raw response headers and body
curl -i http://target/
# Look for hidden paths the UI does not link to
gobuster dir -u http://target/ -w wordlist.txt
# Common files worth checking by hand
# /robots.txt /.git/ /backup.zip /adminInjeksi SQL
Injeksi SQL terjadi ketika masukan pengguna digabungkan ke dalam kueri basis data tanpa pemisahan antara kode dan data.
Masuk yang membangun kueri seperti SELECT * FROM users WHERE name='INPUT' dapat disubversi oleh masukan yang menutup string dan mengubah logikanya:
# A classic auth-bypass payload supplied as the username
' OR '1'='1' --
# UNION-based extraction once the column count is known
' UNION SELECT username, password FROM users -- Perbaikan Nyata untuk Injeksi
CTF mengajarkan Anda mematahkan injeksi agar Anda dapat mempertahankannya. Pertahanan yang benar adalah kueri berparameter (pernyataan tersiapkan), yang sepenuhnya menjaga data pengguna tetap berada di luar struktur kueri.
# Vulnerable: input becomes part of the SQL text
query = "SELECT * FROM users WHERE name='" + name + "'"
# Safe: input is bound as a parameter, never parsed as SQL
cursor.execute("SELECT * FROM users WHERE name = ?", (name,))Scripting Lintas Situs (XSS)
XSS terjadi ketika aplikasi memantulkan atau menyimpan masukan yang dikendalikan penyerang dan peramban melakukan execute terhadapnya sebagai skrip. Dalam CTF, tantangan XSS sering melibatkan bot yang mengunjungi muatan Anda sambil menyimpan bendera dalam kuki.
- Dipantulkan — muatan dalam permintaan langsung dipantulkan kembali.
- Disimpan — muatan disimpan dan dijalankan untuk pengunjung berikutnya.
- Berbasis DOM — JavaScript sisi klien menulis masukan ke halaman dengan cara yang tidak aman.
Pertahanannya adalah pengodean keluaran yang mempertimbangkan konteks, ditambah kebijakan keamanan konten. Masukan uji seperti <script>alert(1)</script> memastikan apakah masukan di-escape.
SSRF dan Lintasan Jalur
Dua pokok web lainnya:
- Pemalsuan Permintaan Sisi Server (SSRF) — Anda menipu server agar membuat permintaan atas nama Anda, sering kali ke alamat yang hanya dapat diakses secara internal seperti
http://127.0.0.1atau titik akhir metadata awan, untuk mencapai bendera. - Lintasan jalur — Anda keluar dari direktori yang ditentukan dengan urutan seperti
../untuk membaca berkas di luar akar web, misalnya../../../../etc/passwd.
Keduanya berasal dari kepercayaan terhadap masukan pengguna untuk memilih sumber daya. Pertahanannya adalah daftar izin yang ketat serta menjadikan jalur kanonis lalu memvalidasinya sebelum digunakan.
Pengekodan Bukan Enkripsi
Jebakan kriptografi yang paling umum bagi pemula adalah mencampuradukkan pengekodan dengan enkripsi. Pengekodan dapat dibalik oleh siapa pun tanpa kunci, sehingga sama sekali tidak memberikan kerahasiaan.
Pelajari cara mengenali format berikut secara langsung:
- Base64 — huruf, angka,
+ /, dan sering kali pengisi=. - Heksadesimal — hanya
0-9 a-f. - ROT13 / Caesar — struktur yang dapat dibaca dengan huruf yang digeser.
# Decode base64
echo 'ZmxhZ3toZWxsb30=' | base64 -d
# Decode hex
echo '666c6167' | xxd -r -pSandi Klasik dan XOR
Banyak tantangan kriptografi menggunakan sandi historis yang lemah atau sandi modern yang diterapkan secara sembarangan:
- Caesar / Vigenere — sandi pergeseran yang dapat dipecahkan melalui analisis frekuensi atau dengan mencoba seluruh 25 pergeseran.
- XOR satu bita — seluruh pesan di-XOR dengan satu bita; coba semua 256 kunci dan pilih keluaran yang dapat dibaca.
- XOR dengan kunci berulang — dipecahkan dengan menemukan panjang kunci, lalu menyelesaikan setiap bita kunci seperti XOR satu bita.
Pelajarannya: sandi khusus atau klasik tidak memberikan keamanan nyata terhadap seorang analis.
Jebakan RSA
RSA hanya aman jika parameternya dipilih dengan benar. Tantangan kriptografi CTF sering memberikan contoh yang rusak:
- Modulus kecil — jika
ncukup kecil, faktorkan secara langsung untuk mendapatkan kembali kunci privat. - Eksponen sangat kecil tanpa pengisi — dengan
e=3dan pesan pendek, teks sandi mungkin merupakan kubus sempurna yang dapat dipulihkan dengan akar pangkat tiga bilangan bulat. - Faktor bersama — jika dua kunci publik memiliki bilangan prima yang sama, faktor persekutuan terbesar dari modulusnya akan langsung mengungkapkannya.
Pertahanan di dunia nyata: gunakan pustaka teruji dengan kunci besar dan pengisi yang tepat (OAEP), jangan pernah membuatnya sendiri.
Pemecahan Hash
Ketika sebuah tantangan memberi Anda nilai hash kata sandi, tujuan Anda adalah memulihkan masukan aslinya. Anda tidak dapat membalikkan nilai hash, tetapi Anda dapat menebak masukan dan membandingkannya.
# Identify the hash type first
hashid 5f4dcc3b5aa765d61d8327deb882cf99
# Dictionary attack with hashcat (mode 0 = raw MD5)
hashcat -m 0 hash.txt rockyou.txt
# John the Ripper alternative
john --wordlist=rockyou.txt hash.txtAlur Kerja yang Dapat Diulang
Satukan semuanya dengan perulangan yang konsisten untuk kedua kategori:
- Amati — baca instruksi, lihat sumber, dan kenali pengodean atau skemanya.
- Buat hipotesis — tentukan keluarga kerentanan yang mungkin.
- Uji dalam skala kecil — kirim satu muatan uji, lalu amati respons persisnya.
- Eksploitasi — kembangkan muatan uji yang berhasil menjadi muatan lengkap yang menghasilkan bendera.
- Dokumentasikan — catat muatan dan alasannya selagi masih segar dalam ingatan.
Perulangan ini menjaga Anda agar tidak tersesat di jalur yang menyesatkan dan menghasilkan laporan penyelesaian hampir tanpa usaha tambahan.
Uji Cepat
Uji pemahaman Anda tentang dasar-dasar web dan kriptografi.
Rangkuman
Anda telah mempelajari teka-teki web dan kriptografi yang sering muncul:
- Web: petakan terlebih dahulu, lalu lakukan pengujian untuk menemukan injeksi SQL, XSS, SSRF, dan traversal jalur — semuanya berakar pada kepercayaan yang tidak aman terhadap masukan pengguna dan semuanya diperbaiki dengan memisahkan kode dari data.
- Kriptografi: bedakan pengodean dari enkripsi, pecahkan sandi klasik dan XOR yang lemah, eksploitasi kesalahan parameter RSA, dan pecahkan nilai hash dengan daftar kata.
- Satu perulangan amati, buat hipotesis, uji, eksploitasi, dokumentasikan dapat digunakan untuk keduanya.
Selanjutnya, Anda akan beralih ke rekayasa balik dan eksploitasi biner.
Pertanyaan yang Sering Diajukan
Apakah pelajaran “Tantangan Web dan Kripto” gratis?
Ya — teks lengkap “Tantangan Web dan Kripto” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus Cyber Security Academy, upgrade ke CoddyKit PRO. Kursus Cyber Security Academy mencakup 4 pelajaran total.
Apa yang akan aku pelajari di “Tantangan Web dan Kripto”?
Menyelesaikan teka-teki web dan kripto umum. Kamu berlatih Cyber Security Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.
Apakah aku perlu pengalaman untuk memulai Cyber Security Academy?
Tidak diperlukan pengalaman sebelumnya. Cyber Security Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 2 dari 4.
Berapa lama pelajaran “Tantangan Web dan Kripto” memakan waktu?
Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.
Bisakah aku menulis dan menjalankan kode dalam pelajaran Cyber Security Academy ini?
Ya. Setiap pelajaran Cyber Security Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.
Semua pelajaran dalam kursus ini
- Kategori dan Pola Pikir CTF
- Tantangan Web dan Kripto
- Dasar-Dasar Reversing dan Pwn
- Peralatan dan Writeup