Memulai
pwn-labs terdiri dari world, dan tiap world berisi level yang dikerjakan berurutan. Satu level punya materi singkat dan satu challenge yang dijalankan langsung di browser.
Mulai dari Stack Dasar: lima soal x86-32 dari overwrite variabel sampai ret2win dengan dua argumen. Pengetahuan C dasar cukup; konsep stack, register, dan little-endian dijelaskan selama belajar.
Alur satu level
- Baca materi di kolom kiri.
- Tulis payload di workspace, lalu jalankan.
- Pantau register, stack, dan disassembly sampai paham apa yang terjadi.
- Kirim payload. Server menjalankannya ulang dan memberi flag jika berhasil.
Tanpa akun dan dengan akun
Kamu bisa membaca materi dan menjalankan emulator tanpa masuk. Akun GitHub dibutuhkan untuk mengirim payload, menyimpan progress, dan tampil di leaderboard.
Format payload
Payload ditulis sebagai ekspresi sederhana, misalnya:
"A" * 64 + p32(0x08049196)
Fungsi yang didukung: p32, p64, cyclic, cyclic_find, nop, literal string dan bytes, serta * dan +. Setiap payload dibatasi 4 KiB.
Panel stack dan register menunjukkan state emulator aktual sesudah uji, termasuk ketika program crash. cyclic_find(angka EIP) menampilkan offset sebagai empat byte little-endian dalam pratinjau heksadesimal; misalnya 10 00 00 00 berarti 16 byte.
Petunjuk dan poin
Setiap soal menyediakan tiga petunjuk bertahap. Untuk akun yang masuk, setiap petunjuk mengurangi 10% poin dasar; poin tidak pernah turun di bawah 50%. Petunjuk yang dibuka tanpa akun tidak disimpan.