waraxe-2004-SA007.txt

2004-03-17T00:00:00
ID PACKETSTORM:32878
Type packetstorm
Reporter Janek Vind aka waraxe
Modified 2004-03-17T00:00:00

Description

                                        
                                            `  
  
  
  
{================================================================================}  
{ [waraxe-2004-SA#007] }  
{================================================================================}  
{ }  
{ [ XSS and SQL injection bugs in 4nguestbook module for PhpNuke ] }  
{ }  
{================================================================================}  
  
Author: Janek Vind "waraxe"  
Date: 15. March 2004  
Location: Estonia, Tartu  
  
  
  
Affected software description:  
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
  
>From developer's infofile:  
  
4nGuestbook Version 0.92 (German & English & Finnish) for phpNUKE Version 6.5 - 6.9 (www.phpnuke.org)  
By WarpSpeed (Marco Wiesler) (warpspeed@4thDimension.de) @ Sep/2oo3  
http://www.warp-speed.de @ 4thDimension.de Networking  
  
With this addon/module for phpNUKE you can offer a comfortable guestbook  
to your users.  
  
- Admin: Edit, delete and managing the guestbook entrys  
- Admin: Generell Settings from Addon/Module  
- Admin: Settings: Allow NB-Code, HTML or Smilies ...  
- Admin: Settings: Only Members can post...  
- Preview of entry  
- Show IP or ID from poster (only for Admin)  
- Full Multilanguage support  
- And mutch more...  
  
  
  
Vulnerabilities:  
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
  
1. Cross-Site scripting aka XSS  
  
Example:  
  
  
http://localhost/nuke71/modules.php?name=4nGuestbook&entry=x[xss%20code%20here]  
  
Because PhpNuke will filter GET request for some symbols, it will be wise to use POST  
request for exploiting.  
  
Remark 1 - this XSS case is by standard classification sql injection bug,  
but because the script will display mysql errors for any user (not only for admin), we can "convert"  
the sql injection to xss.  
  
Remark 2 - when MySql version 4.1 will be widely used in future, then many "not so useful" sql injections,  
including this one, can be used with full power - because of the "subselects" feature, not available in  
current MySql versions. Why? Because if we can inject malicious code to sql sentence after "ORDER BY" or  
after "LIMIT", then in current MySql versions, all we can do, is to fail the sql request. No UNION-s etc.  
But in version 4.1 we can have something like this - "ORDER BY desc ASC LIMIT (SELECT pwd FROM nuke_authors)...".  
  
  
  
2. Sql injection   
  
Not useful at all in this case, because we must have superadmin rights, but anyway - this bug needs to be fixed...  
  
Example:  
  
http://localhost/nuke71/admin.php?op=NukebookEditEntry&nbid=-2%20UNION%20SELECT%20null%20/*  
  
and we have sql error:  
  
MySQL Error : Query Error  
Error Number: 1222 The used SELECT statements have a different number of columns  
  
  
  
  
  
Greetings:  
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
  
Greets to ulljobu, djzone, raider and to all IT freaks in Estonia!  
  
  
  
Contact:  
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
  
come2waraxe@yahoo.com  
Janek Vind "waraxe"  
  
---------------------------------- [ EOF ] ------------------------------------  
`