• Embed Doc
  • Readcast
  • Collections
  • CommentGo Back
Download
 
Deface web kompolna.go.idPosted April 21st, 2007 by htamiciPendahuluanSetelah banyaknya bug-bug yang bertebaran di internet dari unicode hingga yang baru- baru ini menggemparkan jagad maya yaitu RPC Dcom, sekarang muncul lagi satu lubangkeamanan yang membahayakan sebuah websites. SQL Injection atau dikenal juga denganSQL insertion adalah sebuah teknik yang digunakan untuk mengeksploitasidatabase pada suatu websites dengan memaksa keluarnya error page situs itu yang adaerror pages itu terdapat info tentang struktur database website yang dieksploitasi. SQLsendiri merupakan bahasa pemrograman database yang sering dipakai para webdeveloper maupun admin sebuah situs untuk menampung ataupun menaruh data-data baru dari suatu input yang masuk seperti input member login, search engine, dan lainsebagainya.Sebenarnya SQL injection sendiri bukanlah hal baru, dari dulu teknik ini sudah dikenaldalam dunia hacking sebagai salah satu teknik web hacking, namun baru muncul lagisekarang karena sifatnya yang dapat merusak database dari suatu situs. Teknik yangdigunakan dalam SQL Injection adalah dengan jalan menginput perintah-perintah standar dalam SQL (DDL, DML, DCL) seperti CREATE, INSERT, UPDATE, DROP, ALTER,UNION, SELECT dan perintah-perintah lainnya yang tak asing lagi bagi anda yangsudah mengenal SQL secara mendalam maupun yang baru saja belajar. Dari berbagai jenis SQL dari MySQL, PostgreSQL, Nuke SQL, dan MS-SQL, yang paling rentanterhadap SQL Injection adalah MS-SQL.Bahaya Default SettingDefault setting SQl yang paling berbahaya adalah menggunakan adminID = sa dan password blank alias kosong, apabila ada direktori sebuah situs yang disitu ada inputuntuk adminnya maka kalau kita isi id-nya dengan = 'sa' dan passwordnya =' ' maka kitalangsung masuk sebagai admin, ini kalau default setting-nya belum diubah. Namun adalagi string yang bisa kita input untuk akses sebagai web admin yaitu dengan string ' OR 1=1-- Nah apabila ada input web admin yang input box-nya adalah User dan Password makaapabila kita masukan string ' OR 1=1-- di input box user dan masukan foobar di input box password, maka akan membuat SQL query-nya bingung diakibatkan jadi SQL Querymembacanya sebagai:SELECT * from users where User ='' or 1=1-- and Password ='foobar'yang artinya sqlnya men-SELECT semua query dari user yang user-nya '' (kosong) atau(OR) 1=1 (true) -- (tanda -- adalah mark dari SQL seperti halnya di C/C++ mark-nya //atau /*)
 
Jadi kalau diuraikan logikanya adalah bahwa SQL-nya menganggap 1=1 sebagai truesehingga kolom itu di-bypass lalu kolom password-nya diabaikan karena setelah 1=1terdapat mark SQL ( -- ), sehingga password itupun diabaikan. Lalu apakah hanya itustring-nya dalam menginjeksi sebuah situs? Tentu saja tidak. Inti dari injeksi dalamlangkah awalnya adalah memaksa keluar sebuah error page yang berisi informasi struktur database situs itu dan kalau kita ingin melihatnya kita harus men-debug-nya. Jadi yangkita masukkan adalah string debugging SQL code, yaitu ' having 1=1-- , ini adalah stringyang harus dimasukkan kalau kita ingin melihat error page dari situs sasaran.Mencari TargetSitus web MS-SQL dengan ASP adalah situs yang paling rentan terhadap serangan ini.Jadi bagaimana jika kita ingin mencari target yang menggunakan bahasa scripting ASPyang dapat kita serang? Seperti biasa buka www.google.com nah, di kolom keywordnyamasukkan allinurl:.co.nz/admin.asp. Keyword ini dapat anda modifikasi ke berbagai bentuk tapi intinya allinurl: harus dimasukkan karena Google akan mencari semua URLdalam sebuah situs yang mempunyai direktori /admin.asp.Bisa saja anda ganti dengan allinurl:.co.id atau net atau org, or.id, sampaiallinurl:.fr/admin.asp semua tergantung kreativitas anda dalam mencari targetmenggunakan Google, dan yang terpenting dari semua itu adalah anda harus tahu di manaharus menginput string SQL tadi, misalnya di member login, user login, dan bahkandapat pula di search product.Lokasi SQL InjectionLalu apakah setiap situs target kita harus di-inject lewat input box-nya? Tidak juga. Kita bisa memasukan string-string SQL di URL situs target.Misalnya ada sebuah situs www.target.com/moreinfo.cfm?ProductID=245 Nah, ketikkan string injeksi debuging SQL tadi ke address bar anda dibelakang url targetitu, contohnya:www.target.com/moreinfo.cfm?ProductID=245' having 1=1--atau juga anda hapus nilai produk dari URL tersebut dan ganti dengan debuggingcodenya, sebagai contoh:www.target.com/moreinfo?ProductID=' having 1=1— Setelah itu akan keluar sebuah error page dari situs itu yang memberi informasi tentangstruktur database situs itu. Dari hasil informasi yang kita dapat ini, kita dapat melakukanserangan berikutnya. Apabila browser kita adalah Internet Explorer, ada sebagian situsyang tidak menampilkan error-nya, ini dikarenakan opsi Show Friendly HTTP Error Messages diaktifkan. Untuk itu kita perlu menonaktifkannya dengan cara menghilangkantanda centang di kotaknya. Opsi ini dapat anda temukan di Tools > Internet Option >Advanced cari opsinya di bagian Browsing lalu hilangkan tanda centangnya dan klik tombol Apply. Sesudah itu apabila anda menemui error page yang berisi HTTP 500 error - internal server error- sebelum men-set opsi tadi, anda cukup menekan tombol Refresh,lalu terlihatlah sudah error-nya. Setelah kita tahu struktur database-nya, dengan pengetahuan dasar dari belajar SQL kita dapat menghancurkan database itu dengan
 
 perintah ' drop database [nama_database] atau drop table [nama_table], namun bukan iniyang kita cari dalam SQL Injection karena kita tidak dapat apa-apa dari string tadi.Praktek SQL InjectionBagaimana misalnya kalau anda menemukan sebuah situs yang menyediakan jasa kirimSMS dari web, namun setiap SMS ada perhitungannya dalam sebuah string, dan kitaharus membayar dengan kartu kredit. Kita tidak akan melakukan carding disini, namunkita dapat meng-inject database-nya agar string SMS tadi diberi nilai dan bisa dipakaiuntuk mengirim SMS. Untuk mengetahui lebih lanjut dari serangan SQL Injection, perhatikan SQL Injection dari sebuah situs yang memberi layanan SMS web kehandphone ini. Disini akan dijelaskan string dasar SQL yang dapat berubah menjadi halyang membahayakan suatu situs.1. Cari target dengan Google, keywordnya allinurl:.com/sendsms.asp. Inilah URL yangsering dipakai oleh web site yang menyediakan jasa mengirim SMS.2. Dalam contoh ini kita pakai www.yepcell.com, situs ini adalah sebuah situs dari Timur Tengah yang menyediakan jasa pengiriman sms ke seluruh penjuru dunia danmenyediakan aksesori handphone seperti, ringtone dan gambar.3. Anda harus mendaftar dulu untuk menjadi anggota supaya bisa mengirim SMS. Isikandata diri anda; semuanya boleh palsu kecuali nomor handphone. Dalam contoh ini kita buat userID dengan nama yamakasi. Sebelumnya anda dapat menguji apakah situs inimemakai SQL. Cara mengujinya dapat pada input box login dengan string yang telahdibahas di atas.4. Setelah itu anda klik OK, dan account anda telah terbentuk.5. Proses penyerangan akan dimulai, anda masuk ke members direktory yang URL-nyaadalah www.yepcell.com/members.asp lalu masukan debuging code ' having 1=1- dikolom username dan masukan sembarang password di kolom password.6. Nah, keluar error page-nya, disitu dijelaskan:Error Type:Microsoft OLE DB Provider for ODBC Drivers (0x80040E14)[Microsoft][ODBC SQL Server Driver][SQL Server]Column'YepCell_membersDB.UserID' is invalid in the select list because it is not contained in anaggregate function and there is no GROUP BY clause. nah kita tahu bahwa ada tableYepcell_membersDB dan ada field UserID, ini adalah informasi berharga. untuk itu siapatahu ada lagi filed lainnya, jadi kita masukan string ' GROUP BY YepCell_membersDB – 7. Lalu akan muncul lagi error-nyaError Type:Microsoft OLE DB Provider for ODBC Drivers (0x80040E14)[ Microsoft ] [ ODBC SQL Server Driver ] [ SQL Server ] Column'YepCell_membersDB.Password' is invalid in the select list because it is not contained inan aggregate function and there is no GROUP BY clause nah ada lagi fieldnya yaitu
of 00

Leave a Comment

You must be to leave a comment.
Submit
Characters: ...
You must be to leave a comment.
Submit
Characters: ...