Minggu, 18 April 2010

SQL INJECTION

Konsep Dasar SQL Injection


- SQL injection adalah sebuah aksi hacking yang dilakukan di aplikasi client dengan cara memodifikasi perintah SQL yang ada di memori aplikasi client.

- SQL Injection merupakan teknik mengeksploitasi web aplikasi yang didalamnya menggunakan database untuk penyimpanan data.

Bahaya dari penggunaan SQL Injection :

- Teknik 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.

- Bahkan yang lebih berbahaya lagi yaitu mematikan database itu sendiri, sehingga tidak bisa memberi layanan kepada web server.



Contoh Syntak SQL Injection :


- $SQL = “select * from login where username =’$username’ and password = ‘$password’”; , {dari GET atau POST variable }

- isikan password dengan string ’ or ’’ = ’

- hasilnya maka SQL akan seperti ini = “select * from login where username = ’$username’ and password=’pass’ or ‘=′”; , { dengan SQL ini hasil selection akan selalu TRUE }

- maka kita bisa inject sintax SQL (dalam hal ini OR) kedalam SQL





Cara pencegahan SQL Injection :



- 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 diinject dengan perintah yang panjang.

- Filter input yang dimasukkan oleh user, terutama penggunaan tanda kutip tunggal (Input Validation).

- Matikan atau sembunyikan pesan-pesan error yang keluar dari SQL Server yang berjalan.

- Matikan fasilitas-fasilitas standar seperti Stored Procedures, Extended Stored Procedures jika memungkinkan.

- Ubah "Startup and run SQL Server" menggunakan low privilege user di SQL Server Security tab.




Syntax SQL Injection


1. Commenting out.
Gunanya untuk mengakhiri suatu query, bypass query.
+ SQL Server
Syntax: –
Penggunaan: DROP namatabel;–
+ MySQL
Syntax: #
Penggunaan: DROP namatabel;#

Contoh penggunaan in real life:
* Username: admin’–
* Proses query yang terjadi di server:
SELECT * FROM userlist WHERE username=’admin’–’ AND password=’password’;
Query ini akan memberikan km akses sebagai admin karena query selanjutnya setelah — akan diabaikan

2. Inline comment
Gunanya untuk mengetahui versi SQL server yang digunakan atau untuk bypass script proteksi
+ SQL Server (MySQL juga bisa)
Syntax: /*Comment*/
Penggunaan: DROP/*comment*/namatabel
atau: DR/**/OP/*bypass proteksi*/namatabel
atau: SELECT/*menghindari-spasi*/password/**/FROM/**/userlist

+ MySQL (mendeteksi versi)
Syntax: /*!MYSQL Special SQL*/
Penggunaan: SELECT /*!32302 1/0,*/1 FROM namatabel
Note: Syntax juga bisa digunakan jika versi MySQL lebih tinggi dari 3.23.02 (sesuai query), tidak berfungsi untuk versi dibawahnya

3. Staking queries
Gunanya untuk menyambung 2 buah query dalam 1 transaksi.
+ SQL Server
Syntax: ;
Penggunaan: SELECT * FROM namatabel; DROP namatabel–

4. Pernyataan IF
Ini kunci jika melakukan Blind SQL Injection, juga berguna untuk testing sesuatu yang ga jelas secara akurat
+ SQL Server
Syntax: IF kondisi bagian-true ELSE bagian-false
Penggunaan: IF (1=1) SELECT ‘true’ ELSE SELECT ‘false’

+ MySQL
Syntax: IF(kondisi,bagian-true,bagian-false)
Penggunaan: SELECT IF(1=1,’true’,’false’)

5. Operasi String
Gunanya untuk bypass proteksi
+ SQL Server
Syntax: +
Penggunaan: SELECT login + ‘-’ + password FROM userlist
+ MySQL Server
Syntax: ||
Penggunaan: SELECT login || ‘-’ || password FROM userlist

Note: Jika MySQL server dalam mode ANSI syntax berfunsi. Cara lain adalah dengan menggunakan fungsi CONCAT() dalam MySQL.
Syntax: CONCAT(str1,str2,str3,…)
Penggunaan: SELECT CONCAT(login,password) FROM userlist

6. Union Injection
Gunanya menggabungkan 2 tabel yang berbeda dengan syarat tabel itu harus sama jumlah kolomnya.

Syntax: UNION
Penggunaan: ‘ UNION SELECT * FROM namatabel
atau: ‘ UNION ALL SELECT * FROM namatabel
atau: ‘ UNION SELECT kolom1,kolom2 FROM namatabel
Proses yang terjadi dalam query:
SELECT * FROM user WHERE id=’1′ UNION SELECT kolom1,kolom2 FROM namatabel

Jika tabel tersebut mempunyai kolom yang berbeda, maka dapat ditambahkan null atau 1
Penggunaan: ‘ UNION SELECT 1,kolom1,kolom2 FROM namatabel




tips untuk mencegah SQL Injection.


1. Lindungi Query SQL
Untuk melindungi query SQL, kita harus menerapkan tehnik sanitasi/mengosongkan seluruh input yang diterima dari request object ASP seperti: Request, Request.QueryString, Request.Form, Request.Cookies dan Request.ServerVariabbles. Teknik sanitasi ini sangat tergantung pada Relational Database Management System.

RDBMS merupakan sistem yang multiuser. Oleh karena itu, RDBMS menyertakan fitur sekuriti untuk mengontrol akses ke/dan penggunaan database. Tujuan arsitektur sekuriti RDBMS adalah untuk melindungi dan memverifikasi semua bagian informasi yang tersimpan dalam database. Informasi bisnis perlu diverifikasi untuk memastikan bahwa tidak ada data yang berubah.

Contoh penanganan MS SQL Server seperti dibawah ini.
Dalam sebuah halaman login, script semestinya terdiri dari dua variabel (txtUserName, txtPassword) dari jenis string yang dilewati. Saat sebuah tanda petik tunggal (') dimasukkan dalam sebuah parameter, hal ini mengijinkan user untuk memanipulasi perintah yang dieksekusi. Untuk menghadapi ancaman SQL Injection, hindari penggunaan tanda petik tunggal (') dengan menggunakan fungsi REPLACE, seperti dibawah ini:

p_strUsername = Replace(Request.Form("txtUsername"), "'", "''")
p_strPassword = Replace(Request.Form("txtPassword"), "'", "''")

Contoh yang kedua, script diharapkan adalah sebuah variabel (ID) jenis long integer. Perintah SQL yang tidak diotorisasi dapat mengeksekusi dengan menambahkan perintah SQL ke dalam parameter ID. Untuk mengatasi hal ini gunakan input untuk Long Integer dengan fungsi CLng sbb:
p_lngID = CLng(Request("ID"))

Jika user mencoba melewati suatu string, fungsi CLng akan menampilkan pesan error.

2. Mengganti Error message (Pesan Error)
Yang kedua adalah mengganti pesan error message karena hal ini seringkali digunakan oleh sang attacker untuk menelusuri informasi jalur penyimpanan database. Contoh codenya:

Sub LogError(strLocation)
Dim objFSO 'sebagai Scripting.FileSystemObject
Dim objStream 'sebagai Scripting.TextStream
if Err.Number = 0 Then Exit Sub
WriteLine "

"_
& "ERROR."_
& "Please try again later or contact webmaster.

"
Set objFSO = Server.CreateObject("Scripting.FileSystemObject")
Set objStream = objFSO.OpenTextFile("C:\errorlog.txt",_
ForAppending, True)
ObjStream.WriteLine Now() & ": [" & Request("SCRIPT_NAME")_
& " - Err #" & Err.Number & "]" _
& Err.description & "[Lokasi: " & strLocation & "]"
ObjStream.Close
Set objStream = Nothing
Set objFSO = Nothing
Response.End
End Sub

3. Batasi Permisi
batasi permisi hanya pada user yang terotorisasi saja. Sang user tentu saja harus yakin bahwa data yang dia terima sudah akurat dan tidak ceroboh memodifikasinya.



referensi : http://www.binushacker.net/
http://www.jogjahacking.org/

keylogger

Apa itu keylogger??

Keylogger merupakan sebuah perangkat baik perangkat keras atau perangkat lunak yang digunakan untuk memantau penekanan tombol keyboard. Sebuah keylogger biasanya akan menyimpan hasil pemantauan penekanan tombol keyboard tersebut ke dalam sebuah berkas log/catatan/rekaman. Beberapa keylogger tertentu bahkan dapat mengirimkan hasil rekamannya ke e-mail tertentu secara periodik.
Keylogger dapat digunakan untuk kepentingan yang baik atau bahkan bisa digunakan untuk kepentingan yang jahat. Kepentingan yang baik antara lain untuk memantau produktivitas karyawan, untuk penegakan hukum dan pencarian bukti kejahatan. Kepentingan yang buruk antara lain pencurian data dan password.
Keylogger yang berupa hardware besarnya seukuran baterai ukuran AA. Keylogger jenis ini dipasangkan pada ujung keyboard, sehingga mencegat data yang dialirkan dari keyboard ke CPU. Sementara itu, keylogger dalam bentuk perangkat lunak terpasang di dalam komputer dan bekerja secara tersembunyi. Cara sederhana untuk menghindari dampak adanya keylogger pada sistem operasi Microsoft Windows adalah dengan menggunakan fitur on-screen keyboard (osk.exe).



Jenis Keylogger :

Keylogger dibuat dalam 2 jenis yaitu Software dan Hardware, keduanya memiliki karakteristik yang berbeda dengan tujuan yang sama. Contoh keylogger berbentuk software adalah Invisible Keylogger, KGB Keylogger, dan Stealth Keylogger. Software ini bisa di install ke computer korban dan secara otomatis software ini akan menyembunyikan dirinya sehingga tidak diketahui oleh korbannya. Korban tidak akan bisa melihat program ini sedang berjalan, karena semua software keylogger menawarkan Hide modus (Modus Sembunyi) yang tidak akan menampilkan icon, nama program pada task manager dan lainnya. Banyak juga Trojan yang digunakan para hacker yang berfungsi sebagai keylogger seperti Back Orifice, Netbus, Sub Seven,dll.

Kekurangan dari software keylogger adalah keberadaanya yang dapat dideteksi oleh program-program anti-spyware dan antivirus seperti Norton, Spycop, Who’s Watching me,dll. Sedangkan bentuk keylogger yang mudah digunakan dan tidak terdeteksi anti-spyware dan anti virus adalah hardware keylogger. Hardware keylogger juga dapat bekerja pada system operasi apapun dan bahkan password login system operasi juga bisa direkam.

Pada dasarnya ketikan apapun, dimanapun dan dengan Sistem Operasi apapun tidak berpengaruh terhadap hardware keylogger. Semua ketikan yang dilakukan akan terlebih dahulu melalui hardware keylogger yang telah terpasang sebelum dialirkan ke computer itu sendiri. Karena bentuknya yang berupa hardware, maka untuk memasang keylogger jenis ini diperlukan akses fisik ke computer yang hendak dipasang. Jika anda ingin memasang ke computer yang berada di Afrika,jelas anda harus ke Afrika untuk memasang keylogger hardware tersebut. Inillah alasan mengapa hardware keylogger tidak banyak diketahui secara umum dan tentunya ini bisa menjadi keuntungan tersendiri bagi para hacker, bahkan di Indonesia belum ditemukan toko yang menjual produk keylogger hardware ini.

Beberapa situs penyedia keylogger antara lain www.keyghost.com, www.amecisco.com, dan www.keyloggersdirect.com. Hardware keylogger biasanya dipasang diantara konektor kabel asli keyboard dan port mouse pada computer. Karena pada umumnya keyboard saat ini menggunakan konektor PS2 dan USB, hardware keylogger juga tersedia dalam 2 macam yaitu PS2 dan USB. Jenis keylogger semacam ini relative mudah dideteksi dengan melihat secara fisik kabel keyboard computer yang sedang digunakan. Namun,terkadang computer-komputer public seperti warnet memasang lemari kecil untuk komputernya sehingga tidak memungkinkan kita untuk mengeceknya dan hal ini menjadikan bermain internet di warnet menjadi sangat rawan penyadapan. Dengan cara inilah semua enkripsi yang sekuat dan serumit apapun menjadi percuma dan dengan mudah bisa dicuri. Menurut saya hardware keylogger ini tidak dapat bekerja pada laptop, kan keyboard laptop tidak menggunakan koneksi PS2 dan USB alias langsung.

Cara Mengatasi Keylogger

Keylogger memiliki 2 bentuk yaitu Hardware dan Software dengan karakterisitik yang sangat berbeda membuat teknik mendeteksi dan pencegahannya pun juga berbeda. Dahulu sempat terdengar untuk menghindari Software keylogger dapat menggunakan Virtual Keyboard yang dapat di akses melalui menu Accessories – Accessibility – On-Screen Keyboard. Penggunaan Virtual Keyboard ini tidak berguna untuk menghadapi Software Keylogger karena Virtual Keyboard ini tetap mengirimkan text yang akan ditampilkan pada program dan text ini tetap akan direkam oleh Software Keylogger, bahkan Keylogger juga dapat meng-capture tampilan text tersebut.

Namun, virtual keyboard sangat ampuh dan berguna untuk mencegah hardware keylogger, karena text yang diketikkan tidak akan melalui keyboard asli dan juga tidak melalui kabel dan port keyboard yang telah dipasangi Hardware Keylogger. Atau untuk menghindari hardware keylogger, anda dapat menggunakan Keyboard yang anda bawa sendiri dari rumah... ? dan untuk mencegah adanya Software Keylogger,dapat menggunakan Program anti-spyware atau antivirus yang tentunya selalu ter-update.

Langkah lain yang bisa dilakukan adalah dengan mencari direktori yang disembunyikan, karena biasanya pemasang Keylogger membuat directory yang tersembunyi agar tidak diketahui oleh pemakai namun langkah ini juga bisa membantu kita untuk mengetahui keberadaan suatu program yang tidak dikehendaki. Untuk melakukan langkah ini, jalankan perintah "dir /ah /s" pada Command Prompt yang akan menampilkan semua file dan direktori yang disembunyikan.
//E.O.F

Cara kerja keylogger

Setelah di download, jangan lupa extract file tersebut. OK ! Setelah file download tersebut di extract, akan ada 2 folder : Folder DOUGLAS_EN n’ Folder DOUGLAS_ES .
Hapus aja Folder DOUGLAS_ES, gag penting !!! kenapa ditanya? karena pake bahasa spanyol … :-/ yang kita gunakan Folder DOUGLAS_EN, karena pake bahasa Inggris …
Lalu kamu buka folder DOUGLAS_EN. Di dalam pasti ada 6 File dan 1 Folder DATA. iya kan ??
Double klik pada file install.exe . Nanti pada proses penginstalan, kamu akan diminta memasukan password. Isi password terserah kamu yang penting gampang di ingat !! Selesai deh ..
Pastikan keylogger sudah terinstal, untuk menggunakan keylogger tinggal tekan tombol CTRL+ALT+SHIFT+F9 pada keyboard kamu …

Untuk melihat informasi yang udah di rekam oleh keylogger, kamu pilih READ INFORMATION. Terus masukkan password yang sama dengan password yang kamu masukkan waktu proses penginstalan.

Terus kalau di dalamnya kosong / tidak ada informasi apa-apa, itu kenapa ?? Itu disebabkan karena tidak adanya aktifitas. Maksud aktifitas disini yaitu Penggunan PC tersebut.

Contoh : Misal kamu lagi facebook’an, coba kamu logout dari Facebook kamu. Pastikan keylogger telah terinstal Di PC tersebut, terus coba kamu login kembali dengan memasukkan alamat email dan password facebook kamu. Lalu buka keylogger kamu dengan menekan tobol CTRL+ALT+SHIFT+F9 … Kemudian pilih READ INFORMATION, lalu masukkan password keylogger kamu.


Cara Menghindari & Mengatasi Keylogger

Untuk mengatasi keylogger itu mudah. Berikut cara-cara untuk menghindari & mengatasi keylogger :

* Gunakan Antivirus !!

Biasanya antivirus yang bagus itu mendeteksi keylogger sebagai virus. So, sebelum memakai komputer, scan dulu komputer kamu.

* Gunakan On-Screen Keyboard!!

On-Screen Keyboard merupakan tool bawaan windows yang berfungsi seperti fungsi keyboard. Tampilan-nya pun mirip seperti keyboard. Cuma cara penggunaan-nya harus menggunakan mouse. Untuk menggunakan On-Screen Keyboard, caranya :

Klik Start Pilih Program > Accessories > Accessibility > On-Screen Keyboard.
Tempatkan kursor di kolom username dan password facebook.
Masukkan username dan password facebook kamu dengan mengklik huruf/angka yang ada pada On-Screen Keyboard.
* Gunakan Anti Keylogger!!!
Kamu bisa mendownload anti keylogger secara gratis

Solusi Jika Facebook Kamu Di Hack

Kalo Facebook kamu di hack? Apa aja yang kamu lakukan ketika facebook kamu di hack ??

- Stress ??
- Pasrah ???
- Berdoa seharian ???
- Lapor polisi ???
- Nangis2 ???

Tenang, solusi-nya mudah kok, yang perlu kamu lakukan tinggal lapor ke pihak facebook. Caranya ? Buka url dibawah ini :

http://www.facebook.com/help/contact.php?show_form=account_hacked

Isi Form tersebut, kalo udah klik Submit. Nanti atau dalam beberapa hari, akan ada balasan melalui email dari pihak facebook.




Referensi : http://id.wikipedia.org/wiki/Keylogger"
http://black-it.net/
http://capedeh.com/