Pada artikel ini kita akan menyelesaikan tugas ke-25 dari situs tersebut
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
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.
Kami terhubung dan melihat-lihat server.
Sebuah flag yang tidak dapat kita baca, sebuah program dan kode sumbernya. Mari kita lihat sumbernya.
Mari kita selesaikan. Program ini menggunakan kata sandi sebagai argumen.
Selanjutnya, 16 byte acak disimpan dalam variabel otp.
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).
Untuk beberapa alasan, nilai file yang dibuat dibaca dan dibandingkan dengan kata sandi yang dimasukkan.
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
Sekarang mari kita jalankan programnya.
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')"
Kami mendapatkan bendera dan 100 poin mudah kami. Dan kami melanjutkan: di artikel berikutnya kami akan menyentuh Web. Anda dapat bergabung dengan kami di
Sumber: www.habr.com