WP eCommerce 3.9.1 plugin XSS & CSRF Web Vulnerability

2015.01.20
Risk: Medium
Local: No
Remote: Yes
CVE: N/A

Document Title: =============== WP eCommerce 3.9.1 plugin -XSS & CSRF Web Vulnerability Release Date: ============= 2014-12-30 Product & Service Introduction: =============================== https://wpecommerce.org Abstract Advisory Information: ============================== The Hackyard Security Group Researcher-Team leaded by 0x0A discovered a cross site request forgery issue and a cross site scripting vulnerability in the Wordpress eCommerce plugin. Vulnerability Disclosure Timeline: ================================== 2014-12-27: Author Notification (0x0A) 2015-1-20: Public Disclosure Discovery Status: ================= Published Affected Product(s): ==================== Wordpress Product: WP eCommerce plugin 3.9.1 Exploitation Technique: ======================= Remote Severity Level: =============== Medium Technical Details & Description: ================================ A client-side cross site request forgery issue and a cross site scripting vulnerability has been discovered in the Wordpress eCommerce 3.9.1 plugin. The client-side cross site request forgery vulnerability allows remote attackers to force client-side requests to execute application functions. The client-side cross site scripting vulnerability allows remote attackers to inject malicious script codes to compromise administrator session data. The xss vulnerability is located in the username and userpass values of the display-sales-logs.php file POST method request. Remote attackers are able to inject malicious script codes to the client-side application request. The csrf vulnerability is located in the same value request and allows to request the account session data. Both issues are only exploitable on the client-side of the application and the request method to inject is POST. The security risk of the client-side web vulnerability is estimated as medium with a cvss (common vulnerability scoring system) count of 2.5. Exploitation of the client-side web vulnerability requires no privileged web-application user account and low or medium user interaction. Successful exploitation of the vulnerabilities result in non-persistent phishing mails, session hijacking, non-persistent external redirect to malicious sources and client-side manipulation of affected or connected module context. Request Method(s): [+] POST Vulnerable Module(s): [+] controller Vulnerable Parameter(s): [+] c= Affected Module(s): [+] display-sales-logs.php Proof of Concept (PoC): ======================= The client-side cross site request forgery issue and a cross site scripting vulnerability can be exploited by remote attackers with low or medium user interaction. For security demonstration or to reproduce the security vulnerability follow the provided information and steps below to continue. Manual steps to reproduce the vulnerabilities ... PoC: display-sales-logs.php <?php $controller = $_REQUEST['c']; $target = $argv[0]; $ch = curl_init("http://127.0.0.1"); curl_setopt($ch, CURLOPT_RETURNTRANSFER,1); curl_setopt($ch, CURLOPT_URL, "http://127.0.0.1/wordpress/wp-content/plugins/wp-e-commerce/wpsc-admin/display-sales-logs.php?c=<script>alert(document.cookie);</script>"); curl_setopt($ch, CURLOPT_HTTPGET, 1); curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)"); curl_setopt($ch, CURLOPT_TIMEOUT, 3); curl_setopt($ch, CURLOPT_LOW_SPEED_LIMIT, 3); curl_setopt($ch, CURLOPT_LOW_SPEED_TIME, 3); curl_setopt($ch, CURLOPT_COOKIEJAR, "/tmp/cookie_$target"); $buf = curl_exec ($ch); curl_close($ch); unset($ch); echo $buf; ?> Reference(s): POC : http://i.imgur.com/Rbl4x00.png Solution - Fix & Patch: ======================= 2015-1-19: Encode all user tainted data with PHP buildin functions before embedding the data into the output. Make sure to set the parameter ENT_QUOTES to avoid an eventhandler injections to existing HTML attributes and specify the correct charset. 1: print ("controller " . htmlentities($_GET["c"], ENT_QUOTES, "utf-8"); Security Risk: ============== The security risk of the cross site request forgery and cross site scripting vulnerability is estimated as medium. (CVSS 2.5) Credits & Authors: ================== Neo Hapsis aka 0x0A- Information Security Researcher [https://hackyard.net] Disclaimer & Information: ========================= The information provided in this advisory is provided as it is without any warranty. Vulnerability Lab disclaims all warranties, either expressed or implied, including the warranties of merchantability and capability for a particular purpose. Vulnerability-Lab or its suppliers are not liable in any case of damage, including direct, indirect, incidental, consequential loss of business profits or special damages, even if Vulnerability-Lab or its suppliers have been advised of the possibility of such damages. Some states do not allow the exclusion or limitation of liability for consequential or incidental damages so the foregoing limitation may not apply. We do not approve or encourage anybody to break any vendor licenses, policies, deface websites, hack into databases or trade with fraud/stolen material. Domains: hackyard.net Contact: admin@hackyard.net Social: facebook.com/HackyardSecurityGroup - youtube.com/user/HackyardSecurityGroup Any modified copy or reproduction, including partially usages, of this file requires authorization from Vulnerability Laboratory. Permission to electronically redistribute this alert in its unmodified form is granted. All other rights, including the use of other media, are reserved by Hackyard Security Group Research Team or its suppliers. All pictures, texts, advisories, source code, videos and other information on this website is trademark of vulnerability-lab team & the specific authors or managers. To record, list (feed), modify, use or edit our material contact (admin@hackyard.net) to get a permission.

References:

https://wpecommerce.org


Vote for this issue:
50%
50%


 

Thanks for you vote!


 

Thanks for you comment!
Your message is in quarantine 48 hours.

Comment it here.


(*) - required fields.  
{{ x.nick }} | Date: {{ x.ux * 1000 | date:'yyyy-MM-dd' }} {{ x.ux * 1000 | date:'HH:mm' }} CET+1
{{ x.comment }}

Copyright 2024, cxsecurity.com

 

Back to Top