Jumat, 11 Maret 2011

[II 3062] tugas 5 - Aplikasi yang bermasalah dengan buffer overflow

Kembali di tugas KI,
Berikut soal tugas KI yang ke-5.

Anda disuruh memilih salah satu dari tugas ini:

1. Anda diminta untuk membuat aplikasi yang rentan dan bermasalah dengan out of bound array (buffer overflow). Misalnya aplikasi meminta pengguna memasukkan nama dengan panjang tertentu tetapi Anda memasukkannya dengan teks diluar batas tersebut. Tunjukkan bahwa program Anda crash dan memiliki potensi celah keamanan (misal jatuh ke root prompt)
2. Anda membuat aplikasi yang menguju aplikasi lain untuk potensi out of bound array tersebut. Misalnya, aplikasi Anda membuat (generate) teks yang panjang untuk dimasukkan ke form (pada aplikasi berbasis web), atau aplikasi Anda memberik teks yang aneh-aneh (fuzzer).

Dan saya memilih mengerjakan tugas yang pertama yaitu aplikasi yang bermasalah dengan buffer overflow.
Aplikasi yang saya buat sederhana saja, yaitu aplikasi yang meminta pengguna untuk memasukkan karakter, dimana karakter yang boleh dimasukkan tidak boleh dari 30 karakter. Kemudian ketika aplikasi saya jalankan, ketika karakter yang saya masukkan lebih dari 30 karakter, terjadi crash. Program berhenti berjalan, seperti terlihat pada gambar



Berikut source code yang saya gunakan :

#include
void duplikasi(char *st)
{
char buf[10];
strcpy(buf, st);
printf("Anda telah memasukan data ke variabel buf dengan:\n%s\n", buf);
return;
}
int main () {
char msg[100];
printf("Masukan karakter, kemudian tekan enter (tidak boleh lebih dari 30 karakter): ");
gets(msg);
duplikasi(msg);
return 0;}

Tidak ada komentar: