Pengujian Keamanan - Buffer Overflows

Buffer overflow muncul ketika program mencoba menyimpan lebih banyak data di area penyimpanan data sementara (buffer) daripada yang dimaksudkan untuk disimpan. Karena buffer dibuat untuk menampung sejumlah data yang terbatas, informasi tambahan dapat meluap ke buffer yang berdekatan, sehingga merusak data valid yang ada di dalamnya.

Contoh

Berikut adalah contoh klasik buffer overflow. Ini menunjukkan buffer overflow sederhana yang disebabkan oleh skenario pertama yang mengandalkan data eksternal untuk mengontrol perilakunya. Tidak ada cara untuk membatasi jumlah data yang telah dimasukkan pengguna dan perilaku program bergantung pada berapa banyak karakter yang telah dimasukkan pengguna di dalamnya.

...
   char bufr[BUFSIZE]; 
   gets(bufr);
   ...

Tangan di atas

Step 1- Kita perlu login dengan nama dan nomor kamar untuk mendapatkan akses internet. Berikut adalah snapshot skenario.

Step 2 - Kami juga akan mengaktifkan "Perlihatkan bidang formulir tersembunyi" di Burp Suite seperti yang ditunjukkan di bawah ini -

Step 3- Sekarang kami mengirim masukan di bidang nama dan nomor kamar. Kami juga mencoba menyuntikkan angka yang cukup besar di bidang nomor kamar.

Step 4- Bidang tersembunyi ditampilkan seperti yang ditunjukkan di bawah ini. Kami klik terima persyaratan.

Step 5 - Serangan berhasil sehingga sebagai hasil dari buffer overflow, serangan tersebut mulai membaca lokasi memori yang berdekatan dan ditampilkan kepada pengguna seperti yang ditunjukkan di bawah ini.

Step 6- Sekarang mari kita login menggunakan data yang ditampilkan. Setelah masuk, pesan berikut ini ditampilkan -

Mekanisme Pencegahan

  • Peninjauan Kode
  • Pelatihan pengembang
  • Alat penyusun
  • Mengembangkan fungsi Aman
  • Pemindaian Berkala