Buffer Overflow ?
• Saat jumlah data melebihi ukuran buffer, kelebihan data dapat melimpah ke
lokasi memory terdekat, merusak data dan bisa merubah path dan perintah
eksekusi. Diantara informasi yang rusak
• Mungkin terdapat informasi yang berisi subroutine dari suatu
program, sehingga program tidak dapat menemukan subroutine dan tidak
dapat menyelesaikan programnya
• Buffer overflow biasa terjadi karena sebagai berikut ;
– Program yang begitu kompleks, sehigga programmer sendiri tidak mengetahui kelemahan
programnya
Deskripsi teknis Buffer Overflow
int main(void)
{
char buff[15];
int pass = 0;
if(strcmp(buff, "stmikplk"))
{
printf ("\n Wrong Password \n");
}
else
{
printf ("\n Correct Password \n");
pass = 1;
}
if(pass)
{
/* Now Give root or admin rights to user*/
printf ("\n Root privileges given to the user \n");
}
return 0;
}
Output masukan benar
script Bahasa C;
Output masukan salah
script Bahasa C;
Output buffer overflow
script Bahasa C;
Contoh lain;
• Dalam contoh berikut, program memiliki dua item data
yang berdekatan dalam memori: sebuah string buffer 8-
byte-panjang, A, dan integer big-endian byte dua, B.