Lucene search
K

WordPress Infocus Theme Cross Site Scripting

🗓️ 27 Jan 2014 00:00:00Reported by Rafay BalochType 
packetstorm
 packetstorm
🔗 packetstormsecurity.com👁 25 Views

Infocus Theme DOM Based XSS Vulnerabilit

Code
`Infocus Theme DOM Based XSS  
  
Details  
=======  
Product: Infocus Theme DOM Based XSS  
Security-Risk: Moderate  
Remote-Exploit: yes  
Company: RHAINFOSEC  
Website: http://services.rafayhackingarticles.net  
Vendor-URL:  
http://themeforest.net/item/infocus-powerful-professional-wordpress-theme/85486  
Vendor-Status: informed  
Advisory-Status: published  
  
Credits  
=======  
Discovered By: Rafay Baloch  
http://rhainfosec.com  
  
Description  
========  
The worpdress theme "Infocus" appears to use vulnerable instance of pretty  
photo plugin that  
is prone to a DOM based xss, unlike other XSS, dom based xss occurs on the  
client side, thus  
leaving all the server side defenses worthlesss. The issue occurs inside  
the client side javascripts  
where the source (User supplied input) is passed through a vulnerable sink  
(Anything that creates/writes) without sanitsing/escaping the user supplied  
input  
  
More Details  
=========  
  
  
Line 623: hashIndex = getHashtag();  
  
Inside the line 623, we see a variable hashIndex which calls th e  
getHashtag() function, which is responsible for returning the user  
supplied values after the hash.  
  
  
Let's take a look at teh getHashtag() function:  
  
getHashtag()  
{  
url=location.href;hashtag=(url.indexOf('#!')!=-1)?decodeURI  
(url.substring(url.indexOf('#!')+2,url.length)):false;return  
hashtag;};  
  
The function getHashtag() is used for returning the user supplied input,  
the function also checks if the user input contains the hash bang and then  
returns the value.  
  
setTimeout(function()  
{  
$("a[rel^='" + hashRel + "']:eq(" + hashIndex + ")").trigger('click'); },  
50);  
  
Finally we have the above line which is responsible for the cause of the  
dom based xss, the $("a[rel^='" + hashRel + "']:eq(" + hashIndex + ")  
writes the user supplied input to the dom without sanitising the input.  
  
POC  
===  
  
http://target.com/#!%22%3E%3Cimg%20src=1%20onerror=prompt%280%29;%3E//  
  
The issue was fixed by sanitising the "hashrel" input before returning it  
to the user.  
  
hashIndex = parseInt(hashIndex);  
hashRel = hashRel.replace(/([ #;&,.+*~\':"!^$[\]()=>|\/])/g,'\\$1');  
  
  
References  
==========  
  
http://www.rafayhackingarticles.net/2013/05/kali-linux-dom-based-xss-writeup.html  
`

Data

Build on a solid foundation with Vulners data

We provide the essential building blocks for cybersecurity solutions with comprehensive, structured, and constantly updated vulnerability and exploits data

Api

Power your application with Vulners API

The Vulners REST API offers reliable, high-performance access to vulnerability intelligence, with 99.9% SLA uptime and CDN-backed data delivery for seamless global access

App

Assess and manage vulnerabilities with Vulners tools

Built on top of Vulners' database and SDK, end-user solutions give security professionals and developers lightweight and powerful tools for vulnerability remediation

27 Jan 2014 00:00Current
7.4High risk
Vulners AI Score7.4
25