Bit51 Better WP Security Plugin XSS / Command Execution

Type packetstorm
Reporter Richard Warren
Modified 2013-07-31T00:00:00


Name: Bit51 Better WP Security Plugin - Unauthenticated Stored XSS to RCE  
Release Date: 30 July 2013  
Reference: NGS00500  
Discoverer: Richard Warren <>  
Vendor: Bit51  
Vendor Reference:   
Systems Affected: Bit51 Better WP Security Plugin Version 3.4.8/3.4.9/3.4.10/3.5.2/3.5.3  
Risk: High  
Status: Published  
Discovered: 1 April 2013  
Released: 1 April 2013  
Approved: 1 April 2013  
Reported: 1 April 2013  
Fixed: 21 July 2013  
Published: 30 July 2013  
Bit51 Better WP Security Plugin Version 3.4.8/3.4.9/3.4.10/3.5.2/3.5.3 -  
Unauthenticated Stored XSS to RCE  
The Better Security Wordpress Plugin suffers from a stored XSS  
vulnerability, which can be exploited by a remote unauthenticated attacker  
to steal cookies or gain privileged access to the affected site.  
Better WP Security takes the best WordPress security features and  
techniques and combines them in a single plugin thereby ensuring that as  
many security holes as possible are patched without having to worry about  
conflicting features or the possibility of missing anything on your site.  
With one-click activation for most features as well as advanced features  
for experienced users Better WP Security can help protect any site.  
Technical Details  
The Better Security Wordpress plugin logs all 404 errors within the "logs"  
tab. By purposefully requesting a non-existent page containing an XSS  
payload a 404 error will be generated. When the admin clicks on the logs  
lab, the XSS payload will be triggered and cookies can be stolen, or some  
onsite request forgery can be carried out to gain admin access. Note -  
there are possibly a few other vectors for XSS through the logs. In  
addition to 404s, username login attempts, user-agents and other  
potentially interesting parameters are logged.  
Single quotes are escaped, but this can be bypassed easily. Also the  
request must be made through burp or a script as browsers will URL encode  
it. A proof of concept request can be found below:  
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.8; rv:15.0)  
Gecko/20100101 Firefox/15.0.1  
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8  
Accept-Language: en-us,en;q=0.5  
Accept-Encoding: gzip, deflate  
DNT: 1  
Proxy-Connection: keep-alive  
Cookie: wordpress_cookies.....  
Fix Information  
Better WP Security 3.5.4 has been released, which includes a fix for this issue.  
NCC Group Research  
For more information please visit <a href=""><br>  
This email message has been delivered safely and archived online by Mimecast.