Sidang Pertama Hacker KPU Digelar
detikcom – Jakarta, Sidang kasus pembobolan situs TNP Komisi
Pemilihan Umum (KPU) dengan terdakwa Dani Firmansyah, digelar Senin
(16/8/2004). Dalam sidang pertama ini tiga Jaksa Penuntut Umum (JPU)
membacakan empat dakwaan. Dani hadir didampingi lima pengacara
beserta para keluarganya.
Sidang yang berlangsung di Pengadilan Negeri Jakarta Pusat, Jl. Gadjah
Mada Jakarta ini berlangsung kurang-lebih selama 30 menit. Persidangan
yang berlangsung singkat dan tenang ini dipimpin oleh Hakim Ketua H.
Hamdi, SH, beserta dua hakim anggota.
Dalam persidangan awal ini ketiga JPU yang diketuai oleh Jaksa
Pratama, Ramos Hutapea membacakan empat dakwaan setebal tujuh
halaman. Oleh Jaksa, terdakwa bian hacker dinyatakan telah melakukan
perbuatan tanpa hak, tidak sah, atau memanipulasi akses ke jaringan
telekomunikasi.
Dalam dakwaan disebutkan, pada hari Sabtu (17/4/2004) jam 03:12:42,
terdakwa secara tanpa hak melakukan akses ke jaringan telekomunikasi
milik KPU dan melakukan penyerangan ke server tnp.kpu.go.id dengan
cara SQL (Structure Query Language) Injection. Terdakwa berhasil
menembus kunci pengaman Internet Protocol (IP) 203.130.201.134 yang
tak lain adalah IP tnp.kpu.go.id. Teknik yang dipakai terdakwa adalah
teknik spoofing (penyesatan), yaitu melakukan hacking dari IP
202.158.10.117 PT Danareksa dengan menggunakan IP Proxy Thailand
yaitu 208.147.1.1 yang didapatkan terdakwa dari situs http://
Dengan IP Proxy Thailand tersebut, terdakwa mencoba menganalisa
kembali variabel-variabel yang ada di situs http://tnp.kpu.go.id. Metode
yang digunakan masih SQL Injection yaitu dengan menabahkan perintahperintah
SQL dari URL http://tnp.kpu.go.id/DPRDII/
dpr_dapil.asp?type=view&kodeprop=1&kodekab=7. Dari hasil
analisa tersebut, didapat nama kolom ‘nama’ dan ‘pkid’ di ‘tabel partai pada web tnp.kpu.go.id. Kemudian dari hasil uji coba diperoleh
kesimpulan bahwa situs TNP KPU terkena Bug SQL Injection. Hal ini
bisa dilihat dari pesan error yang tampak pada browser yang digunakan
terdakwa pada saat menggunakan metode SQL Injection.
Dengan menggunakan modifikasi URL, terdakwa kemudian
menambahkan perintah-perintah SQL seperti pada contoh:
h t t p : / / t n p . k p u . g o . i d / D P R D I I / d p r _ d a p i l . a s p ?
type=view&kodeprop=1&kodeprop=1&kodekab=7;UPDATE partai
set nama=’partai dibenerin dulu webnya’ where pkid=13’;
Penambahan kode SQL tersebut telah menyebabkan perubahan pada
salah satu nama partai di situs TNP KPU menjadi ‘partai dibenerin dulu
webnya‘.
Terdakwa berhasil melakukan perubahan pada seluruh nama partai di
situs TNP KPU pada jam 11:24:16 sampai dengan 11:34:27. Perubahan
ini menyebabkan nama partai yang tampil pada situs yang diakses oleh
publik, seusai Pemilu Legislatif lalu, berubah menjadi nama-nama lucu
seperti Partai Jambu, Partai Kelereng, Partai Cucak Rowo, Partai Si Yoyo,
Partai Mbah Jambon, Partai Kolor Ijo, dan lain sebagainya.
Lingkungan Kerja
Pembahasan mengenai SQL Injection sebenarnya sangat tergantung
dengan lingkungan kerja. Program yang menggunakan database SQL
Server akan mempunyai teknik yang berbeda jika dibandingkan dengan
Oracle atau Microsoft Access. Demikian juga dengan bahasa yang
digunakan, ASP akan sangat berbeda dengan PHP misalnya.
Karena luasnya pembahasan semacam ini, saya akan membatasi
pembahasan dengan lingkungan yang ada pada KPU, yaitu ASP sebagai
bahasa pemrograman, SQL Server sebagai database server dan IIS sebagai web servernya.
Karena saya telah membahas tentang dasar-dasar SQL Injection dengan
form login sedangkan kasus KPU tidak ada form login, maka mulai
saat ini saya akan memberikan contoh dengan menggunakan URL seperti
kasus asli. Karena sebenarnya baik URL maupun form login mempunyai sifat yang sama, maka anda tidak perlu bingung. Karena pengertian dasar tentang SQL Injection ini sudah saya bahas
pada bab 7, halaman 69 maka saya tidak akan membahasnya kembali
di sini. Terakhir, karena buku ini ternyata bukan buku puisi, maka kata “karena”
nya berakhir sampai disini dan kita mulai pembahasan teknisnya.Karena sebenarnya baik URL maupun form login mempunyai sifat yangsama, maka anda tidak perlu bingung.Karena pengertian dasar tentang SQL Injection ini sudah saya bahaspada bab 7, halaman 69 maka saya tidak akan membahasnya kembalidi sini.Terakhir, karena buku ini ternyata bukan buku puisi, maka kata “karena”nya berakhir sampai disini dan kita mulai pembahasan teknisnya. Server, akan berisi sebuah file index.asp yang bertugas menampilkan isi berita berdasarkan parameter Kode artikel yang diberikan. Nama file ini adalah index.asp. Untuk menampilkan artikel pertama, url lengkapnya adalah : http://alamat/index.asp?kode=1, dan untuk menampilkan artikel kedua,url lengkapnya adalah http://alamat/index.asp?kode=2, Dengan kata lain, kita bisa mengatakan bahwa kode adalah parameter
yang akan memberikan informasi kepada program index.asp untuk
menampilkan suatu berita yang dipilih Pada contoh ini, saya memang hanya menggunakan satu parameter
agar anda lebih mudah memahaminya. Penggunaan beberapa parameter
pada dasarnya sama saja dan hanya di batasi oleh tanda & seperti
http://alamat/index.asp?kode=1&kode2=2, dst.
Perhatikan bahwa informasi baris pertama dari detik.com yaitu
h t t p : / / t n p . k p u . g o . i d / D P R D I I / d p r _ d a p i l . a s p ?
type=view&kodeprop=1&kodekab=7 semestinya sudah bisa anda
mengerti sekarang. Terdapat file dpr_dapil.asp yang mengambil beberapa
parameter sebagai input yaitu type, Kodeprop dan kodekab.
Reporter
Zie