|
|
|
|
Menu |
|
|
Home |
| |
|
Discussions |
| |
|
Tools |
| |
|
Affiliates |
| |
|
Content |
| |
|
Info |
| | |
|
|
|
|
|
User Info |
|
Membership:
Latest: MichaelSnaRe
New Today: 0
New Yesterday: 0
Overall: 9144
People Online:
Visitors: 104
Members: 0
Total: 104
|
|
|
|
|
|
Full disclosure |
|
|
|
|
|
|
|
|
|
IT Security and Insecurity Portal |
|
|
[waraxe-2004-SA#029] - Remote File Inclusion in PhpNuke |
|
Posted: Mon May 17, 2004 6:08 pm |
|
|
waraxe |
Site admin |
|
|
Joined: May 11, 2004 |
Posts: 2407 |
Location: Estonia, Tartu |
|
|
|
|
|
|
Let's assume we are working with PhpNuke 6.x - 7.3
Look at the beginning of the index.php and search for something like this:
Code: |
require_once("mainfile.php");
$_SERVER['PHP_SELF'] = "modules.php";
$row = $db->sql_fetchrow($db->sql_query("SELECT main_module from ".$prefix."_main"));
$name = $row['main_module'];
$home = 1;
|
Now insert right after "require_once()" this new sentence:
So after patching the code it will look like this:
Code: |
require_once("mainfile.php");
$modpath = '';
$_SERVER['PHP_SELF'] = "modules.php";
$row = $db->sql_fetchrow($db->sql_query("SELECT main_module from ".$prefix."_main"));
$name = $row['main_module'];
$home = 1;
|
In fact, the only thing you just did was the proper initializing of the variable $modpath. And that's enough to evade potential problems |
|
|
|
|
|
|
|
|
Posted: Thu Jun 17, 2004 11:46 am |
|
|
Jeruvy |
Regular user |
|
|
Joined: Jun 17, 2004 |
Posts: 6 |
|
|
|
|
|
|
|
Hi waraxe,
My first post on the board, but you've certainly seen my feedback on your disclosures.
This patch breaks several websites.
The problem is the setting of
If this is set to
Code: | $modpath = $nukeurl; |
then it works again, but I have noticed bugs currently in $nukeurl. You may find some fun with these. $nukeurl can be configured with just about anything, and it's used as some important links (like home).
J.
Also wanted to say I'm a fan of full-disclosure, since I don't beleive PHP-Nuke would be anywhere nearly as secure today if it wasn't for full-disclosure. |
|
|
|
|
Posted: Thu Jun 17, 2004 3:40 pm |
|
|
waraxe |
Site admin |
|
|
Joined: May 11, 2004 |
Posts: 2407 |
Location: Estonia, Tartu |
|
|
|
|
|
|
Thanks for feedback! And welcome to my forum! |
|
|
|
|
|
Better way of fixing it: |
|
Posted: Sun Mar 05, 2006 12:48 am |
|
|
dragon001 |
Beginner |
|
|
Joined: Mar 05, 2006 |
Posts: 1 |
|
|
|
|
|
|
|
There is a better way to fix this problem.
Just remove
$modpath
completely and use this:
define("modpath",<definition>);
I used this inside my index.php and modules.php
this is more secured, because an const. can't be overwritten.
just a little magic will do it |
|
|
|
|
|
Re: Better way of fixing it: |
|
Posted: Wed Mar 08, 2006 2:40 am |
|
|
waraxe |
Site admin |
|
|
Joined: May 11, 2004 |
Posts: 2407 |
Location: Estonia, Tartu |
|
|
|
|
|
|
dragon001 wrote: | There is a better way to fix this problem.
Just remove
$modpath
completely and use this:
define("modpath",<definition>);
I used this inside my index.php and modules.php
this is more secured, because an const. can't be overwritten.
just a little magic will do it |
Yep, you are right, constants are good, because they can't be "poisoned" by attacker. |
|
|
|
|
www.waraxe.us Forum Index -> How to fix
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
|
|
|
|
|
|
|