Lucene search
K

phpmyvisites-xss.txt

🗓️ 13 Feb 2007 00:00:00Reported by NicobType 
packetstorm
 packetstorm
🔗 packetstormsecurity.com👁 26 Views

Multiple vulnerabilities in phpMyVisites. Impacted version: 2.2 stable and newer. HTTP Response Splitting, Cross Site Scripting, Local file include

Code
`  
Multiple vulnerabilities in phpMyVisites  
  
  
Application : phpMyVisites prior to 2.2 stable  
Release Date : 11 February 2007  
Author : Nicob <nicob at nicob.net>  
  
Abstract :  
==========  
  
Several vulnerabilities were identified in phpMyVisites. This software  
is "a free and powerful open source (GNU/GPL) software for websites  
statistics and audience measurements" : http://www.phpmyvisites.net/  
  
Impacted versions :  
===================  
  
Versions 2.2 stable (released on November 10, 2006) and newer are not  
impacted by these vulnerabilities.  
  
Notes :  
=======  
  
- only one PHP file (phpmyvisites.php) need to be remotely accessed by  
visitors. A paranoid installation will allow remote access only to this  
file (for example via htaccess). So my brief code audit focused on this  
very file.  
  
- external libraries (smarty, phpMailer, PEAR, ...) are embedded in any  
phpMyVisites install. Some vulnerabilities in these libraries were  
patched in version 2.2 stable too.  
  
Vulnerabilities :  
=================  
  
- "HTTP Response Splitting" via the "url" parameter (triggered when the  
"pagename" parameter begins by "FILE:")  
  
- "Cross Site Scripting" in function GetCurrentCompletePath() :  
  
http://your_site/your_dir/phpmyvistes.php/AAA/B<script>alert(document.location)</script>B/CCC  
  
- "Local file include" via the "pmv_ck_view" cookie parameter. Part of  
this cookie is used to construct a file path, which is then used in a  
require() call :  
  
if( !isset($this->file)  
|| !strpos( $this->file, 'utf-8.php')  
|| strpos( $this->file, '..') )  
{  
$this->file = $this->getNearestLang();  
}  
require LANGS_PATH . "/" . $this->file;   
  
In this code, the third check is "FALSE" if the strpos() call returns  
"FALSE" _or_ "0". So "../../../../../tmp/utf-8.php" would be accepted.  
  
  
Nicob  
  
`

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