{================================================================================} { [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 ("


The html tags you attempted to use are not allowed

[ Go Back ]"); } } ############################################################################### 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