Pemecahan masalah dengan pwnable.kr 25 - otp. Batas ukuran file Linux

gambar

Pada artikel ini, kita akan menyelesaikan tugas ke-25 dari situs pwnable.kr .

Informasi Organisasi
Terutama 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 (Crypto);
  • teknologi jaringan (Jaringan);
  • membalikkan (Reverse Engineering);
  • steganografi (Stegano);
  • pencarian dan eksploitasi kerentanan WEB.

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

Agar Anda dapat mengetahui tentang artikel baru, perangkat lunak, dan informasi lainnya, saya membuat saluran di Telegram dan grup untuk membahas masalah apa pun di bidang ICD. Juga, saya pribadi akan mempertimbangkan permintaan pribadi Anda, pertanyaan, saran dan rekomendasi secara pribadi dan akan menjawab semua orang .

Semua informasi disediakan hanya untuk tujuan pendidikan. Penulis dokumen ini tidak bertanggung jawab atas kerusakan yang disebabkan seseorang sebagai akibat dari menggunakan pengetahuan dan metode yang diperoleh sebagai hasil dari mempelajari dokumen ini.

Solusi pekerjaan otp


Kami melanjutkan bagian kedua. Saya akan segera mengatakan bahwa ini lebih sulit daripada yang pertama, tetapi kali ini mereka memberi kami kode sumber program. Jangan lupa tentang diskusi 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 koneksi.

gambar

Kami terhubung dan melihat-lihat di server.

gambar

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

gambar

Mari kita analisa. Program menggunakan kata sandi sebagai argumen.

gambar

Selanjutnya, 16 byte acak disimpan dalam variabel otp.

gambar

File dengan nama acak (8 byte pertama otp) dibuat dalam folder tmp dan 8 byte acak (8 byte kedua otp) ditulis untuknya.

gambar

Untuk beberapa alasan, file yang dibuat membaca nilai dan membandingkannya dengan kata sandi yang dimasukkan.

gambar

Di sinilah kerentanannya. Terdiri dari penyimpanan antara nomor yang dihasilkan dalam file. Kita dapat membatasi ukuran file, misalnya, ke 0, kemudian ketika menulis dan membaca dengan kata sandi 0 akan dibandingkan. Ini dapat dilakukan seperti ini.

# ulimit -f 0 

gambar

Sekarang jalankan programnya.

gambar

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

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

gambar

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

Source: https://habr.com/ru/post/id471042/


All Articles