Memecahkan tugas dengan pwnable.kr 25 - otp. Batas ukuran file Linux

Memecahkan tugas dengan pwnable.kr 25 - otp. Batas ukuran file Linux
Pada artikel ini kita akan menyelesaikan tugas ke-25 dari situs tersebut pwnable.kr.

informasi organisasiKhusus bagi mereka yang ingin mempelajari sesuatu yang baru dan berkembang di bidang informasi dan keamanan komputer, saya akan menulis dan berbicara tentang kategori berikut:

  • PWN;
  • kriptografi (Kripto);
  • teknologi jaringan (Jaringan);
  • mundur (Rekayasa Terbalik);
  • steganografi (Stegano);
  • pencarian dan eksploitasi kerentanan WEB.

Selain itu, saya akan berbagi pengalaman saya dalam forensik komputer, analisis malware dan firmware, serangan terhadap jaringan nirkabel dan jaringan area lokal, melakukan pentest dan menulis eksploitasi.

Agar Anda dapat mengetahui tentang artikel baru, perangkat lunak, dan informasi lainnya, saya buat saluran di Telegram ΠΈ kelompok untuk mendiskusikan masalah apa pun di kawasan IIKB. Juga permintaan, pertanyaan, saran, dan rekomendasi pribadi Anda Saya akan melihat dan membalas semua orang..

Semua informasi disediakan untuk tujuan pendidikan saja. Penulis dokumen ini tidak bertanggung jawab atas kerusakan yang terjadi pada siapa pun sebagai akibat dari penggunaan pengetahuan dan metode yang diperoleh sebagai hasil dari mempelajari dokumen ini.

Memecahkan tugas otp

Mari kita lanjutkan ke bagian kedua. Saya akan langsung mengatakan bahwa ini lebih rumit daripada yang pertama, tetapi kali ini mereka tidak memberikan kode sumber programnya. Jangan lupa diskusinya di sini (https://t.me/RalfHackerPublicChat) dan di sini (https://t.me/RalfHackerChannel). Mari kita mulai.

Klik pada ikon dengan tanda tangan otp. Kami diberi alamat dan port untuk terhubung.

Memecahkan tugas dengan pwnable.kr 25 - otp. Batas ukuran file Linux

Kami terhubung dan melihat-lihat server.

Memecahkan tugas dengan pwnable.kr 25 - otp. Batas ukuran file Linux

Sebuah flag yang tidak dapat kita baca, sebuah program dan kode sumbernya. Mari kita lihat sumbernya.

Memecahkan tugas dengan pwnable.kr 25 - otp. Batas ukuran file Linux

Mari kita selesaikan. Program ini menggunakan kata sandi sebagai argumen.

Memecahkan tugas dengan pwnable.kr 25 - otp. Batas ukuran file Linux

Selanjutnya, 16 byte acak disimpan dalam variabel otp.

Memecahkan tugas dengan pwnable.kr 25 - otp. Batas ukuran file Linux

File dengan nama acak dibuat di folder tmp (8 byte pertama adalah otp) dan 8 byte acak ditulis ke dalamnya (8 byte kedua adalah otp).

Memecahkan tugas dengan pwnable.kr 25 - otp. Batas ukuran file Linux

Untuk beberapa alasan, nilai file yang dibuat dibaca dan dibandingkan dengan kata sandi yang dimasukkan.

Memecahkan tugas dengan pwnable.kr 25 - otp. Batas ukuran file Linux

Di sinilah kerentanan muncul. Ini terdiri dari menyimpan nomor yang dihasilkan ke file secara perantara. Kita bisa membatasi ukuran file misalnya 0, maka saat menulis dan membaca, 0 akan dibandingkan dengan passwordnya, caranya seperti ini.

# ulimit -f 0

Memecahkan tugas dengan pwnable.kr 25 - otp. Batas ukuran file Linux

Sekarang mari kita jalankan programnya.

Memecahkan tugas dengan pwnable.kr 25 - otp. Batas ukuran file Linux

Kami mendapatkan kesalahan. Tidak masalah, bisa diproses menggunakan python yang sama.

python -c "import os, signal; signal.signal(signal.SIGXFSZ, signal.SIG_IGN); os.system('./otp 0')" 

Memecahkan tugas dengan pwnable.kr 25 - otp. Batas ukuran file Linux

Kami mendapatkan bendera dan 100 poin mudah kami. Dan kami melanjutkan: di artikel berikutnya kami akan menyentuh Web. Anda dapat bergabung dengan kami di Telegram.

Sumber: www.habr.com

Tambah komentar