Menyelesaikan tugas dengan pwnable.kr 25 - otp. Had saiz fail Linux

Menyelesaikan tugas dengan pwnable.kr 25 - otp. Had saiz fail Linux
Dalam artikel ini kami akan menyelesaikan tugas ke-25 dari tapak pwnable.kr.

maklumat organisasiTerutama bagi mereka yang ingin mempelajari sesuatu yang baru dan berkembang dalam mana-mana bidang maklumat dan keselamatan komputer, saya akan menulis dan bercakap mengenai kategori berikut:

  • PWN;
  • kriptografi (Crypto);
  • teknologi rangkaian (Rangkaian);
  • terbalik (Reverse Engineering);
  • steganografi (Stegano);
  • carian dan eksploitasi kelemahan WEB.

Di samping itu, saya akan berkongsi pengalaman saya dalam forensik komputer, perisian hasad dan analisis perisian tegar, serangan ke atas rangkaian wayarles dan rangkaian kawasan setempat, menjalankan pentest dan eksploitasi penulisan.

Supaya anda boleh mengetahui tentang artikel baru, perisian dan maklumat lain, saya buat saluran telegram ΠΈ kumpulan untuk membincangkan sebarang isu di kawasan IIKB. Juga permintaan peribadi anda, soalan, cadangan dan cadangan Saya akan melihat dan membalas semua orang..

Semua maklumat disediakan untuk tujuan pendidikan sahaja. Pengarang dokumen ini tidak bertanggungjawab ke atas sebarang kerosakan yang dialami oleh sesiapa akibat menggunakan pengetahuan dan kaedah yang diperoleh hasil daripada kajian dokumen ini.

Menyelesaikan tugas otp

Mari kita teruskan dengan bahagian kedua. Saya akan katakan dengan segera bahawa ia lebih rumit daripada yang pertama, tetapi kali ini mereka tidak memberikan kod sumber program. Jangan lupa tentang perbincangan di sini (https://t.me/RalfHackerPublicChat) dan di sini (https://t.me/RalfHackerChannel). Mari kita mulakan.

Klik pada ikon dengan tandatangan otp. Kami diberi alamat dan pelabuhan untuk disambungkan.

Menyelesaikan tugas dengan pwnable.kr 25 - otp. Had saiz fail Linux

Kami menyambung dan melihat sekeliling pelayan.

Menyelesaikan tugas dengan pwnable.kr 25 - otp. Had saiz fail Linux

Bendera yang tidak dapat kita baca, program dan kod sumbernya. Mari kita lihat sumbernya.

Menyelesaikan tugas dengan pwnable.kr 25 - otp. Had saiz fail Linux

Mari kita selesaikan. Program ini mengambil kata laluan sebagai hujah.

Menyelesaikan tugas dengan pwnable.kr 25 - otp. Had saiz fail Linux

Seterusnya, rawak 16 bait disimpan dalam pembolehubah otp.

Menyelesaikan tugas dengan pwnable.kr 25 - otp. Had saiz fail Linux

Fail dengan nama rawak dicipta dalam folder tmp (8 bait pertama ialah otp) dan 8 bait rawak ditulis kepadanya (8 bait kedua ialah otp).

Menyelesaikan tugas dengan pwnable.kr 25 - otp. Had saiz fail Linux

Atas sebab tertentu, nilai fail yang dibuat dibaca dan dibandingkan dengan kata laluan yang dimasukkan.

Menyelesaikan tugas dengan pwnable.kr 25 - otp. Had saiz fail Linux

Di sinilah kelemahan datang. Ia terdiri daripada menyimpan secara pertengahan nombor yang dijana ke fail. Kita boleh mengehadkan saiz fail, contohnya, kepada 0, kemudian apabila menulis dan membaca, 0 akan dibandingkan dengan kata laluan. Ini boleh dilakukan seperti ini.

# ulimit -f 0

Menyelesaikan tugas dengan pwnable.kr 25 - otp. Had saiz fail Linux

Sekarang mari kita jalankan program.

Menyelesaikan tugas dengan pwnable.kr 25 - otp. Had saiz fail Linux

Kami mendapat ralat. Tidak mengapa, ia boleh diproses menggunakan ular sawa yang sama.

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

Menyelesaikan tugas dengan pwnable.kr 25 - otp. Had saiz fail Linux

Kami mendapat bendera dan 100 mata mudah kami. Dan kami teruskan: dalam artikel seterusnya kami akan menyentuh di Web. Anda boleh sertai kami di Telegram.

Sumber: www.habr.com

Tambah komen