[42454] in bugtraq

home help back first fref pref prev next nref lref last post

[HSC] Multiple transversal bug in vis

daemon@ATHENA.MIT.EDU (spher3@hackerscenter.com)
Thu Jan 26 13:39:57 2006

Date: 26 Jan 2006 15:32:40 -0000
Message-ID: <20060126153240.20936.qmail@securityfocus.com>
Content-Type: text/plain
Content-Disposition: inline
Content-Transfer-Encoding: binary
MIME-Version: 1.0
From: spher3@hackerscenter.com
To: bugtraq@securityfocus.com

Hackers Center Security Group (http://www.hackerscenter.com/) 
spher3's Security Advisory 

Multiple transversal bug in vis.pl 


-------------------------------------------------------------------------- 

Description: 

Vis.pl is a perl script which manages files in order to show these; 
you can find it in e-cms default files. The vulnerability taken in 
exam is classifiable as transversal bug. In fact can show to everybody 
files such as passwords or accounts. 

-------------------------------------------------------------------------- 

Code Details: 

Vis.pl doesn't control cgi query except for: 

[...] 

if ( -e $datFile ) 
{ 
open ( DAT_FILE, "$datFile" ); 

[...] 

This function controls only the file existence. 
Then the script start to open the file without check dangerous 
characters as "." and "/". 
So is simply to access where you want: 

http://[target]/cgi-bin/e-cms/vis/vis.pl?s=001&p=../../../../etc/passwd%00 

All variables that open files are unsafe: 

http://[target]/cgi-bin/e-cms/vis/vis.pl?s=../../../../etc/passwd%00 

-------------------------------------------------------------------------- 

How to fix: 

You can fix this script with remove those dangerouse characters as taught 
from W3C WWW Security FAQ. Just adding a line: 

$datFile = s/\.\.//g; 

You have to insert a line like this for ALL variables which contain files 
to open. 


home help back first fref pref prev next nref lref last post