Lucene search

K
securityvulnsSecurityvulnsSECURITYVULNS:DOC:15163
HistoryNov 22, 2006 - 12:00 a.m.

Etomite CMS 0.6.1.2 Vulnerabilities + ContenNow 1.39 Vulnerabilities + Exploits

2006-11-2200:00:00
vulners.com
99

Etomite CMS 0.6.1.2 Multiple Vulnerabilities

Severity : Medium risk
Vendor : www.etomite.org
Author : Alfredo Pesoli 'revenge'

Secunia Advisory : SA22885
Security Focus BID : 21135

[--------------------------------------------------]

[#] Description

Etomite is a PHP Content Management System, more info can be found at vendor site.

Etomite is vulnerable to a sql injection and a local file inclusion.

[--------------------------------------------------]

Vuln #1 : Sql Injection
Impact : Admin credentials disclosure (Manipulation of data)
Exploit : http://www.0xcafebabe.it/sploits/etm_0612_sqlinj.pl

The "id" parameter in "index.php" isn't properly sanitised before
being used in a sql query, this can be exploited to manipulate existing
SQL query by inserting arbitrary SQL code, which can disclose sensitive
information like admin credentials.

Successful exploitation requires magic_quotes_gpc = off.

The problem is due to:
[ index.php ]


function getDocumentIdentifier($method) {
// function to test the query and find the retrieval method
switch($method) {
case "alias" :
return strip_tags($_REQUEST['q']);
break;
case "id" :
—> return strip_tags($_REQUEST['id']); <—
break;



}
}

strip_tags can't filter some kind of characters and is used only to
escape html/php tags, it is better to use another function to filter
user input.

[--------------------------------------------------]

Vuln #2: Local File Inclusion / Remote Command Execution
Impact : System Access, requires admin credentials
Exploit: http://www.0xcafebabe.it/sploits/etm_0612_remote_com.pl

Input passed to the 'f' parameter in "/manager/index.php" isn't properly
verified before being used to include files, this can be exploited
to include local files on target host or execute command, need admin
credentials to exploit this vuln.



//
/* frame management - show the requested frame */
/
/
case "1" :
// get the requested frame
$frame=$_REQUEST['f'];
if($frame>9) {
$enable_debug=false; // this is to stop the debug thingy being attached to the
framesets
}
–> include_once "frames/".$frame.".php"; <–
break;

[#] Workaround

magic_quotes_gpc on will fix the first vulnerability (sql injection),
for the second (local file inclusion) we need to edit the source code to ensure
that input is properly sanitised in ("/manager/index.php").

[#] Disclosure timeline

2006/10/30 Bugs discovered
2006/10/31 Vendor contacted, no response
2006/11/15 Public Disclosure

Alfredo Pesoli 'revenge'