|
|
|
|
|
|
IT Security and Insecurity Portal |
|
|
Cross Site Scripting in PHP Nuke 7.7 |
|
Posted: Thu Jul 14, 2005 11:22 am |
|
|
engagedb |
Regular user |
|
|
Joined: Jul 10, 2005 |
Posts: 7 |
|
|
|
|
|
|
|
I'd say this is a low risk.
Anyways. First the link in question:
modules.php?name=Your_Account&redirect=>[XSS HERE]<b&mode=>[AND HERE]<b
Although modules.php seems to point to Your_Account, I found this bug within
/forums/profiles.php.
Code: |
if ( !$userdata['session_logged_in'] && $mode == 'editprofile' )
{
$header_location = ( @preg_match("/Microsoft|WebSTAR|Xitami/", $_SERVER["SERVER_SOFTWARE"]) ) ? "Refresh: 0; URL=" : "Location: ";
header($header_location . append_sid("login.$phpEx?redirect=profile.$phpEx&mode=editprofile", true));
exit;
}
@include("includes/usercp_register.php");
exit;
}
else if ( $mode == 'confirm' )
{
// Visual Confirmation
if ( $userdata['session_logged_in'] )
{
exit;
}
exit;
}
else if ( $mode == 'sendpassword' )
{
@include('includes/usercp_sendpasswd.'.$phpEx);
exit;
}
else if ( $mode == 'activate' )
{
@include('includes/usercp_activate.'.$phpEx);
exit;
}
else if ( $mode == 'email' )
{
@include('includes/usercp_email.'.$phpEx);
exit;
}
}
redirect(append_sid("index.$phpEx", true));
?>
|
Where to start? Mode= .. This part has 1 problem. It shows what to do if mode=editprofile, or mode=email
but it fails to address anything else..
The Redirect= problem, well, Thats one I'm still trying to pinpoint. I'm concerned that the Redirect= will be found in every area of phpNuke due to the option in Admin to force a user to register/be logged in to view the file. Thus resulting in "redirect" to the your_account (or possibly other areas)
From my finds I can't really put anything dangerous into it, IE: SQL queries, PHP Code, etc
try it on your test site, pop in the link, and then click view source
now click view source
<input type="hidden" name="redirect" value=>[XSS HERE]<b>
<input type="hidden" name="mode" value=>[AND HERE]<b>
If anyone finds a fix before me, lol, please post it here so we can all utilize it, thanks.
-Special thanks to WarAxe for his assistance. Cya's |
|
|
|
|
|
|
|
|
Posted: Thu Jul 14, 2005 12:12 pm |
|
|
waraxe |
Site admin |
|
|
Joined: May 11, 2004 |
Posts: 2407 |
Location: Estonia, Tartu |
|
|
|
|
|
|
I have done some research about this and can confirm existence of the 2 XSS cases - in variables "redirect" and "mode".
Some prominent phpnuke sites, still unpatched:
http://www.nukescripts.net
http://phpnuke.org
http://www.nukefixes.com
As XSS exists on those sites, it is obvious, that this XSS case is widespread in all the net.
How to fix? Open the "modules/Your_Account/index.php" and find this in beginning:
Code: |
if (!defined('MODULE_FILE')) {
die ("You can't access this file directly...");
}
require_once("mainfile.php");
$module_name = basename(dirname(__FILE__));
get_lang($module_name);
$userpage = 1;
include("modules/$module_name/navbar.php");
|
Now just add some restrictive sanitizer code:
Code: |
if (!defined('MODULE_FILE')) {
die ("You can't access this file directly...");
}
require_once("mainfile.php");
$module_name = basename(dirname(__FILE__));
get_lang($module_name);
$userpage = 1;
$redirect = preg_replace("/[^a-zA-Z0-9_]/",'',$_REQUEST['redirect']);
$mode = preg_replace("/[^a-zA-Z]/",'',$_REQUEST['mode']);
include("modules/$module_name/navbar.php");
|
This should do the trick |
|
|
|
|
|
|
|
|
Posted: Thu Jul 14, 2005 12:21 pm |
|
|
engagedb |
Regular user |
|
|
Joined: Jul 10, 2005 |
Posts: 7 |
|
|
|
|
|
|
|
Theoretically that should work for all of the redirect bugs , not just pages redirecting to Your Account, correct?
I'm gonna put it into my test page and give it a shot , thanks m8 |
|
|
|
|
Posted: Fri Jul 22, 2005 3:53 am |
|
|
kidron |
Beginner |
|
|
Joined: Jul 22, 2005 |
Posts: 4 |
|
|
|
|
|
|
|
engagedb wrote: | Theoretically that should work for all of the redirect bugs , not just pages redirecting to Your Account, correct?
I'm gonna put it into my test page and give it a shot , thanks m8 |
please give us a shout if you find something |
|
|
|
|
www.waraxe.us Forum Index -> PhpNuke
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
All times are GMT
Page 1 of 1
|
|
|
Powered by phpBB © 2001-2008 phpBB Group
|
|
|
|
|