[waraxe-2004-SA#007 - XSS and SQL injection bugs in 4nguestbook module for PhpNuke]
{================================================================================}
{ [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@xxxxxxxxxxxxxxx) @ 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@xxxxxxxxx
Janek Vind "waraxe"
---------------------------------- [ EOF ] ------------------------------------