Anda di halaman 1dari 8

SQL INJECTION

A. Definisi SQL injection adalah suatu teknik yang dapat dilakukan oleh cracker untuk dapat masuk kedalam system administrator tanpa mengetahui username dan password administrator terlebih dahulu dengan memanfaatkan perintah-perintah SQL yang dimasukkan kedalam database mesin server. Seiring dengan berjalannya waktu, akibat banyaknya para hacker muda yang lahir untuk melakukan kejahatan di dunia maya, maka banyak metode yang mereka gunakan untuk melakukan teknik serangan seperti Cross Site Scripting, gunakan adalah teknik serangan melalui SQL injection. Sebenarnya SQL injection sendiri bukanlah hal baru, dari dulu teknik ini sudah dikenal dalam dunia hacking sebagai salah satu teknik web hacking, namun baru muncul lagi sekarang karena sifatnya yang dapat merusak database dari suatu situs. !eknik yang digunakan dalam SQL injection adalah dengan jalan menginput perintah-perintah standar dalam SQL % $L, L, CL& seperti create, insert, upate, dorp, alter, union dan select beserta perintah-perintah irectory !raversal "ttack, #arameter $anipulation dan lain sebagainya. "dapun salah satu contoh teknik serangan yang sering mereka

lainnya yang tak asing lagi bagi anda yang sudah mengenal SQL secara mendalam maupun yang baru saja belajar. SQL singkatan dari Structured Query Language yg merupakan bahasa komputer standar yang ditetapkan oleh "'S( %"merican 'ational Standard (nstitute& untuk mengakses dan memanupulasi sistem database. SQL bekerja dengan program database seperti $S "ccess, ) *, (nformi+, $S SQL Server, ,racle, Sybase dan lain sebagainya. SQL injection attack merupakan salah satu teknik dalam melakukan web hacking untuk menggapai akses pada sistem database yg berbasis SQL. !eknik ini memanfaatkan kelemahan dalam bahasa pemprograman scripting pada SQL dalam mengolah suatu sistem database. -asil yang ditimbulkan dari teknik ini membawa masalah yang sangat serius.

B. Sebab terjadinya SQL INJECTION SQL injection yang dapat diartikan sebagai suatu aksi hacking yang dilakukan di aplikasi client dengan cara memodifikasi perintah SQL yang ada di memori aplikasi client dapat terjadinya karena disebabkan oleh beberapa penyebab yatu . !idak adanya penanganan terhadap karakter / karakter tanda petik satu dan juga karakter double minus yang menyebabkan suatu aplikasi dapat disisipi dengan perintah SQL. Sehingga seorang -acker menyisipkan perintah SQL kedalam suatu parameter maupun suatu form. C. Karakteristik SQL INJECTION SQL injection yang merupakan jenis serangan dari para hacker mempunyai beberapa karakteristik yaitu . 0. !eknik serangan ini memungkinkan seseorang dapat login kedalam sistem tanpa harus memiliki account. *. Selain itu SQL injection juga memungkinkan seseorang merubah, menghapus, maupun menambahkan data/data yang berada didalam database. )ahkan yang lebih berbahaya lagi yaitu mematikan database itu sendiri, sehingga tidak bisa memberi layanan kepada web server. D. Tools end!k!n" 1ntuk dapat melakukan aksi SQL injection, para hacker membutuhkan beberapa tools yang akan mereka gunakan sebagai pendukung untuk melakukan teknik penyerangan diantaranya adalah sebagai berikut . 0. (nternet 2+ploler 3 )rowser *. #C yang terhubung internet 4. #rogram atau software seperti. a. )SQL hacker b. !he $ole c. #angolin d. SQL$ap e. -avij

f. 2nema SQLi g. SQL 'inja h. SQL Sus i. Safe SQL (njector E. enan"anan SQL INJECTION a. $erubah Script #-# b. $enggunakan $5SQL62SC"#26S!7('8 c. #emfilteran karakter dengan memodifikasi php.ini #. $e%ini%alisir seran"an SQL inje&tion "da beberapa cara yang dapat digunakan untuk meminimalisasikan terjadinya serangan SQL injection diantaranya adalah sebagai berikut . a. 9arning atau 2rror pada :uery tidak perlu ditampilkan. Lebih baik dibuat script yang akan langsung memfeedback log error3warning ke developer3adminnya jika terjadi kesalahan :uery, sementara di end-user bisa ditampilkan, misal error ;<;. =alau "nda pernah 3 sering hosting di beberapa web hosting, pastinya ada beberapa web hosting yang memberikan penamaan yang sama untuk direktori usernya %shared hosting&, misal 3sompret3+*4*;3nama-domain %dimana sompret selalu sama untuk setiap user dalam satu mesin, +*4*; adalah username, dan nama-domain adalah nama domain yang digunakan si +*4*;. #esan warning dan error :uery yang terjadi akibat script akan menampilkan path letak file tersebut. "kan lebih parah lagi jika user memberi permission >>> ke dir 3 file. b. eveloper hendaknya melakukan validasi terhadap 17L dan memfilter bentuk re:uest yang menjurus terhadap tindakan injeksi. c. ?angan pernah dumping database ke direktori yang tidak restrict permissionnya 3 publik. an lagi penamaan terhadap file hasil dumping database diusahakan tidak umum seperti pemberian tanggal-bulan-tahun %misal . 04<>0@A;.s:l&. )eberapa third party atau

e+tension 3 module suatu C$S yang menggunakan konfigurasi default bisa ditebak direktori dan nama filenya. d. Lakukaan audit sendiri dengan berbagai macam tools yang ada. '. LOKASI SQL INJECTION 1ntuk dapat melakukan SQL injection pada setiap target situs tidak harus melalui inbo+nya saja akan tetapi hacker bisa memasukan string-string SQL di 17L situs yang telah menjadi target sebelumnya. $isalnya situs www.target.com3moreinfo.cfm dengan #roduct( B *;C lalu hacker mengetikkan string injeksi debuging SQL tadi ke address bar yang dituju dibelakang url target itu, contohnya. www.target.com3moreinfo.cfm dengan #roduct( B *;CD having 0 B 0 dan juga hacker dapat menghapus nilai produk dari 17L tersebut dan menggantinya dengan debugging code, sebagai contoh. www.target.com3moreinfo #roduct( B Dhaving 0B0EFG Setelah itu akan keluar sebuah error page dari situs itu yang memberi informasi tentang struktur database situs itu. ari hasil informasi yang telah didapat ini, hacker dapat melakukan serangan berikutnya. "pabila browser kita adalah (nternet 2+plorer, ada sebagian situs yang tidak menampilkan error-nya, ini dikarenakan opsi Show Hriendly -!!# 2rror $essages diaktifkan. 1ntuk itu hacker perlu menonaktifkannya dengan cara menghilangkan tanda centang di kotaknya. ,psi ini dapat anda temukan di !ools I (nternet ,ption I "dvanced cari opsinya di bagian )rowsing lalu hilangkan tanda centangnya dan klik tombol "pply. Sesudah itu apabila anda menemui error page yang berisi -!!# C<< error - internal server error- sebelum men-set opsi tadi, anda cukup menekan tombol 7efresh, lalu terlihatlah sudah error-nya. Setelah kita tahu struktur database-nya, dengan pengetahuan dasar dari belajar SQL kita dapat menghancurkan database itu dengan perintah D drop database Jnama6databaseK atau drop table Jnama6tableK.

(. I$ LE$ENTASI SQL INJECTION 0. $asuk ke google atau browse yg lain *. $asukkan salah satu keyword berikut L3admin.aspL L3login.aspL L3logon.aspL L3adminlogin.aspL L3adminlogon.aspL L3admin6login.aspL L3admin6logon.aspL L3admin3admin.aspL L3admin3login.aspL L3admin3logon.aspL Manda bisa menambahi sendiri sesuai keinginan andaN 4. )ukalah salah satu link yang ditemukan oleh google, kemungkinan "nda akan menjumpai sebuah halaman login %user name danpassword&. ;. $asukkan kode berikut . 1ser name . O or OaDBDa #assword . O or OaDBDa %termasuk tanda petiknya& C. ?ika berhasil, kemungkinan "nda akan masuk ke admin panel, di mana "nda bisa menambahkan berita, mengedit user yang lain, merubah about, dan lain-lain. ?ika beruntung "nda bisa mendapatkan daftar kredit card yang banyak. P. ?ika tidak berhasil, cobalah mencari link yang lain yang ditemukan oleh google. >. )anyak variasi kode yang mungkin, antara lain . 1ser name . admin #assword . O or OaDBDa atau bisa dimasukkan ke dua/duanya misal . Q or <B< -- R S or <B< -- R or <B< -- R Q or <B< T R S or <B< T R Q orU+UBU+ R S or S+GBG+ R Q& or %Q+UBU+ A. Cobalah sampai berhasil hingga anda bisa masuk ke admin panel.

I. CONTO( SQL INJECTION SEDE)(ANA Contoh mengenai kasus SQL injection yang sampai saat ini dan detik ini juga masih sering kita jumpai pada situs-situs di internet. Salah satu penyalahgunaan bug SQL injection adalah digunakan untuk mem-bypass sistem login pada suatu situs. Contoh kali ini akan kita rancang sendiri sedemikian rupa mulai dari merancang database, membuat script sampai melakukan SQL injection terhadap script yang kita buat tersebut. =ita akan menggunakan $S SQL Server sebagai databasenya, "S# sebagai scripting languange nya dan sembarang -!$L editor untuk membuat layar loginnya %penulis disini menggunakan $S Hront#age&. Sebagai contoh, kita menggunakan $S ((S sebagai web server. Siapkan $S ((S dan juga $S SQL Server *<<<. #ertama-tama kita akan buat dahulu databasenya. Siapkan database dengan nama s:linject dan buat tabel di dalamnya dengan nama tb1ser. )erikut ini adalah struktur dari tabel tb1ser melalui perintah SQL C72"!2 !")L2. Create table tb1ser M username varchar%C<&, password varchar%C<&& (sikan data ke dalam tabel tersebut dengan mengetikkan perintah SQL seperti berikut ini. insert into tb1ser values%Ds:lD,DinjectD& Sekarang kita sudah mempunyai sebuah database yang bernama Ds:linjectD, sebuah tabel yang bernama Dtb1serD dan tabel tersebut sudah diisi dengan satu buah row data. Sekarang kita akan buat sebuah halaman login yang digunakan sebagai interface web-nya. #enulis beri nama filenya yaitu login.asp. )entuk tampilan dari layar login ini bisa "nda lihat seperti berikut ini.

Setelah itu kita buat script untuk memproses login ini, penulis beri nama login6process.asp. Code pada file login6process.asp adalah sebagai berikut. 1ntuk koneksi ke database %SQL Server& penulis menggunakan metode SQL "uthentication, server pada localhost, username DsaD dan password DrahasiaD.

Script untuk proses login . VW option e+plicit WI VW dim connstring,conn,recset connstring B L#roviderBSQL,L2 ).0R #asswordBrahasiaR #ersist Security (nfoB!rueR 1ser ( BsaR (nitial CatalogBs:linjectR ata SourceBlocalhostL set conn B server.createobject%Ladodb.connectionL& set recset B server.createobject%Ladodb.recordsetL& conn.open connstring recset.open Lselect X from tb1ser where username B DL Y re:uest.form%LusernameL& Y LD and password B DL Y re:uest.form%LpasswordL& Y LDL,conn,4,* if not recset.eof then response.write recset.recordcount session%LusernameL& B re:uest.form%LusernameL& response.redirect Lsecured6page.aspL

else response.redirect Llogin.aspL end if WI

=ita lihat pada code diatas terdapat operasi S2L2C! ke SQL yang mencari username dan password dari tabel tb1ser. ?ika username dan password yang dimasukkan benar maka akan masuk ke halaman secured6page.asp %ada pada bagian akhir dari tulisan ini&. $aksud dari halaman secured6page.asp ini adalah bahwa halaman tersebut hanya bisa diakses jika "nda mengisikan username dan password dengan benar. "nda tidak bisa mengetikkan 17L halaman tersebut secara langsung. J. CA)A ENCE'A(AN 0. $embatasi panjang dari suatu input bo+ %jika memungkinkan&, dengan

cara membatasinya di kode program, jadi si hacker pemula akan bingung sejenak melihat input bo+ nya gak bisa diinject dengan perintah yang panjang. *. $emfilterisasi input yang dimasukkan oleh user, terutama penggunaan tanda kutip tunggal %(nput Zalidation&. 4. $ematikan atau sembunyikan pesan-pesan error yang keluar dari SQL Server yang berjalan. ;. $ematikan fasilitas-fasilitas standar seperti Stored #rocedures, 2+tended Stored #rocedures jika memungkinkan. C. $engubah LStartup and run SQL ServerL menggunakan low privilege user di SQL Server Security tab.

Anda mungkin juga menyukai