[II3062] Berawal dari XKCD

Tugas mata kuliah II3062 – Keamanan Informasi minggu ini adalah mencoba mencari celah pada mekanisme login suatu halaman web. Dosen memberi contoh misalnya dengan memasukkan username berupa string yang sangat panjang atau berisi karakter-karakter yang tidak lazim. Saya pun langsung teringat sebuah komik dari XKCD berikut:

Exploits of a Mom

Penjelasan komik tersebut kira-kira seperti ini: misalkan query yang digunakan adalah:

INSERT INTO students (address, phone, name) VALUES ($_POST['address'], $_POST['phone'], $_POST['name']);

Jika input untuk name adalah Robert '); DROP TABLE students; -- maka query pun menjadi sebagai berikut:

INSERT INTO students(address, phone, name) VALUES ('123 example', '555-555-5555', 'Robert');
DROP TABLE students;--');

Teknik serangan seperti ini disebut dengan SQL injection attack. Serangan ini dapat dilakukan jika programmer tidak melakukan validasi input sebelum diteruskan ke DBMS.

Kembali ke tugas II3062, saya pun mencari berbagai halaman web yang meminta input dari pengunjung. Untuk setiap text field saya coba masukkan input string yang sangat panjang serta berisi karakter yang tidak lazim, serta input string '); DROP TABLE *; --. Agak jahat memang :p

Akhirnya saya pun sampai pada sebuah situs pemerintah, http://www.pesisirselatan.go.id. Sayangnya di sana tidak nampak fitur untuk login, sehingga serangan saya lancarkan pada fitur search. Menggunakan search query normal tampak baik-baik saja:

Query normal ('pesisir selatan'), hasil pencarian normal.

Saya pun kemudian memasukkan string “jahat” yaitu '); DROP TABLE *; -- lalu menekan Enter. Hasilnya adalah terdapat pesan error 403 – Forbidden:

Query jahat ('); DROP TABLE *; --), muncul pesan error.

Artinya, meskipun saya gagal menghapus semua table karena tidak memiliki izin akses, namun halaman ini tetap rentan terhadap SQL injection attack.

Sekian untuk kali ini, sampai jumpa pada post berikutnya :)

Iklan

6 thoughts on “[II3062] Berawal dari XKCD

    1. Satrio Adi Rukmono Penulis Tulisan

      caranya oke juga tuh :D
      kendala yang gw hadapi sih, login itu kan emang sesuatu yang critical, jadi biasanya programmer membuat mekanisme login cukup aman, jadi sulit menyerang login. nah, kalo search biasanya agak ga penting, siapa sih yang iseng2 nyerang fitur search? makanya nyari search yang rentan terhadap serangan lebih gampang..

      Balas
  1. manchoenk

    setuju sama satrio,seharusnya dilakukan pengalihan halaman website, jika terjadi input yang tidak seusai dengan aturan yang ada, untuk ega for bidden secara default itu terjadi dari webservernya jadi tidak halaman yang dibuat programmer untuk menghandle kesalahan tsbt.. bukan bgitu satrio?? mohon diluruskan bila ada kekeliruan.

    Balas
    1. Satrio Adi Rukmono Penulis Tulisan

      hmm.. kalo yang ega agak beda kasusnya, si ega itu mencoba mengakali mekanisme login dengan meng-OR-kan hasilnya dengan 1 (true) sehingga hasilnya akan selalu 1 juga meskipun username & password salah. jadi kalo hasilnya tetap forbidden berarti attack-nya gagal, sedangkan pada kasus saya, error forbidden menunjukkan bahwa memang ada celah, meskipun saya belum berhasil masuk..

      Balas

Tinggalkan Balasan

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout / Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout / Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout / Ubah )

Foto Google+

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s